Spring Boot实战小技巧(五):实现Mybatis动态sql语句

本文内容基于之前的博客Spring Boot实战小技巧(三):Spring Boot + Mybatis-Plus
Mybatis-Plus自带简单的数据库增删改查函数,但在实际应用中,经常会遇到实现复杂查询或循环添加等操作的需求,需要使用动态sql语句。我们可以在mapper文件,用注解的方式进行动态sql语句的编写,动态sql语句需要添加 <script> </scrpit>标签 。

1 动态查询条件
当sql语句的查询条件需要满足某种条件才能生效时,我们可以使用if标签和choose标签来实现sql查询条件的动态变化,if标签是与(and)的关系,choose是或(or)的关系。

使用if标签时,只有test条件成立,才会动态添加sql语句。test中的条件需要用\"括起来。大于号和小于号属于特殊字符,使用时需要用&gt;&lt;代替,示例如下:

	@Select({
   
            "<script>",
            "select count(*) from tb_person",
            "<where>",
            "<if test=\"null != param.startTime\">",
            "and create_time&gt;=#{param.startTime}",
            "</if>",
            "<if test=\"null != param.endTime\">",
            "and create_time&lt;=#{param.endTime}",
            "</if>",
            "</where>",
            "</script>"
    })
    int countPersons(@Param("param") ParamEntity param);

choose标签是按顺序判断其内部when标签中的test条件是否成立,如果有一个成立,则choose结束。当choose中所有when的条件都不满则时,则执

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mars Coder

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值