MyBatis Mapper中 @Select注解调用静态常量的问题分析

 更新时间:2023年06月06日 14:52:15   作者:java李杨勇  
在Java编码中,我们通常会把这些数字或者字符串定义在常量类或者接口中,可以直接在mapper中也可以使用这些常量就比较好,这篇文章主要介绍了MyBatis Mapper中 @Select注解调用静态常量,需要的朋友可以参考下

MyBatis Mapper中 @Select注解调用静态常量

Java项目在使用MyBatis技术,编写mapper SQL时,如果在其中的ognl表达式或者sql中直接使用一些数字或者字符串的话,会造成难以维护的问题。在Java编码中,我们通常会把这些数字或者字符串定义在常量类或者接口中,可以直接在mapper中也可以使用这些常量就比较好。MybBatis@Select注解标签直接编写SQL,也是支持这样的需求的。

Java方法变量:

包名:com.yt.nbdt.adcenter.controller.vo

 public static final String BELATE = "迟到";
 public static final String LEAVE_EARLY ="早退";
 public static final String LACK_OF_CARD = "缺卡";

mapper  @Select注解使用 

//根据用户姓名和月份统计用户上班缺卡次数
    @Select({
            "<script>",
            "select  count(1) from attendance_record  where 1=1  AND clock_in_res ='${@com.yt.nbdt.adcenter.controller.vo.AttendanceRecordVO@LACK_OF_CARD}'",
            "<if test='username != null'> and username = #{username}</if>",
            "<if test='attendanceTime != null'>and attendance_time like '%${attendanceTime}%' </if>",
            "</script>"
    })
    Integer getworkLackcardNum(@Param("username") String username, @Param("attendanceTime") String attendanceTime);

mybatis mapper.xml中使用静态方法或者静态常量 

静态方法

语法

${@全限定类名@方法名}

示例

  • 例1
<insert id="saveArticleLabel">
    INSERT INTO dcy_article_label(id, article_id, label_id)
    VALUES
    <foreach collection="labelIds" item="item" separator=",">
        ('${@com.baomidou.mybatisplus.core.toolkit.IdWorker@getId()}', #{articleId}, #{item})
    </foreach>
</insert>
  • 例2
<choose>
    // 需要静态方法返回true还是false
    <when test="@staticClass@staticMethod(args)">
         // 需要拼接的SQL
    </when>
</choose>
  • 例3
select
<include refid="Base_Column"/>
from xxx
where valid = 1
<if test="record.code != null and record.code.trim().length() > 0">
  and code ${@com.common.util.MapperHelp@getQuery("record.code",record.code)}
</if>
public class MapperHelp {
    public static String getQuery(String propertyField, String value) {
    	return "= 'xxx'";
    }
}

静态常量

语法

${@全限定类名@常量名}

示例

select
<include refid="Base_Column"/>
from xxx
where valid = ${@com.common.util.MapperHelp@VALID}
public class MapperHelp {
    public static final String VALID = "1";
}

到此这篇关于MyBatis Mapper中 @Select注解调用静态常量的问题分析的文章就介绍到这了,更多相关MyBatis Mapper静态常量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java实现简单猜拳小游戏

    java实现简单猜拳小游戏

    这篇文章主要为大家详细介绍了java实现简单猜拳小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • spring.profiles使用的方法步骤

    spring.profiles使用的方法步骤

    本文主要介绍了spring.profiles使用与spring.profiles.active和spring.profiles.include区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • java时间 java.util.Calendar深入分析

    java时间 java.util.Calendar深入分析

    这篇文章主要介绍了java时间 java.util.Calendar深入分析的相关资料,需要的朋友可以参考下
    2017-02-02
  • MyBatis之foreach标签的用法及多种循环问题

    MyBatis之foreach标签的用法及多种循环问题

    这篇文章主要介绍了MyBatis之foreach标签的用法及多种循环问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Java老手该当心的13个错误

    Java老手该当心的13个错误

    这篇文章主要介绍了Java老手该当心的13个错误,需要的朋友可以参考下
    2015-04-04
  • 如何通过源码了解Java的自动装箱拆箱详解

    如何通过源码了解Java的自动装箱拆箱详解

    装箱就是把基本类型转换成包装类,拆箱就是把包装类转换成基本类型,下面这篇文章主要给大家介绍了关于如何通过源码了解Java的自动装箱拆箱的相关资料,需要的朋友可以参考下
    2022-04-04
  • 浅谈virtual、abstract方法和静态方法、静态变量理解

    浅谈virtual、abstract方法和静态方法、静态变量理解

    下面小编就为大家带来一篇浅谈virtual、abstract方法和静态方法、静态变量理解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • java开发主流定时任务解决方案全横评详解

    java开发主流定时任务解决方案全横评详解

    这篇文章主要为大家介绍了java开发主流定时任务解决方案全横评详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Java请求流量合并和拆分提高系统的并发量示例

    Java请求流量合并和拆分提高系统的并发量示例

    这篇文章主要为大家介绍了Java请求流量合并和拆分提高系统的并发量示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • Java如何导出zip压缩文件

    Java如何导出zip压缩文件

    这篇文章主要介绍了Java如何导出zip压缩文件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07

最新评论