Mybatis在注解上怎么实现动态SQL - 开发技术

博主:xiaoweixiaowei 2023-01-18 条评论

本文小编为大家详细介绍“Mybatis在注解上怎么实现动态SQL”,内容详细,步骤清晰,细节处理妥当,希望这篇“Mybatis在注解上怎么实现动态SQL”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

在注解上实现动态SQL

使用Mybatis注解实现sql语句,但是有些时候有些字段是空的,这时候这个空的字段就要从条件查询语句中删除,这个时候就需要用到动态Sql。

注解的动态语句支持以下

  • trim

  • where

  • set

  • foreach

  • if

  • choose

    Mybatis在注解上怎么实现动态SQL - 开发技术
  • when

  • otherwise

  • bind

@Select({"<script> " +
        "select * from t_user " +
        "where  1=1 " +
        "<if test='userId!=null'> and id = #{userId}</if> " +
        "</script>"})

要加上标签就可以实现条件判断

但是在无法使用大于号 、小于号,那如何解决这问题呢,其实只要把大于号、小于号转义即可

注解方式动态sql写法和注意事项

@Select({"<script>" +
            "select * from tb_examine" +
            "<where> 1 = 1" +
            "<if test = \" employeeId != null and  employeeId != '' \"> AND employee_id = #{employeeId} </if>" +
            "<if test = \" gradeId != null and gradeId != '' \"> AND grade_id = #{gradeId} </if>" +
            "<if test = \" year != null and year != '' \"> AND year like #{year} </if>" +
            "<if test = \" (statrMonth != null and statrMonth != '') and (endMonth == null or endMonth == '') \"> AND month &gt;= #{statrMonth} </if>" +
            "<if test = \" (statrMonth == null or  statrMonth == '') and (endMonth != null and endMonth != '')   \"> AND month &lt;= #{endMonth} </if>" +
            "<if test = \" (statrMonth != null and statrMonth != '') and (endMonth != null and endMonth != '')   \">AND month &gt;= #{statrMonth} AND month &lt;= #{endMonth}  </if>" +
            "</where>" +
            "</script>"})
public List<Examine> getName(Examine examine);

判断字符串为空串 用单引号

大于等于用

小于等于用

读到这里,这篇“Mybatis在注解上怎么实现动态SQL”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注云行业资讯频道。

The End

发布于:2023-01-18,除非注明,否则均为 主机评测原创文章,转载请注明出处。