mybatis里mapper.xml中SQL语句if语句嵌套if语句

我就是我 2023-10-01 06:30 98阅读 0赞

为了实现一个sql可以根据条件不同实现sql语句的动态查询,所以在使用mybatis时,对应的mapper.xml的sql语句可以根据条件值的不同执行不同的sql语句,
最开始在我的where子句中我的if语句是这么写的:

  1. <where>
  2. <if test="status==0 ">
  3. status=#{
  4. status}
  5. </if>
  6. <if test="status==1">
  7. status=#{
  8. status}
  9. </if>
  10. <if test="status==2">
  11. status=#{
  12. status}
  13. </if>
  14. <if test="status==-1">
  15. status=0 or status=2
  16. </if>
  17. </where>

需要实现当status为空的时候,没有status的条件,为0,1,2的时候按照status的值查询,这样实在太笨,所以修改如下:

  1. <where>
  2. <if test="status!=null">
  3. <if test="status==0 or status==1 or status==2">
  4. status=#{
  5. status}
  6. </if>
  7. <if test="status==-1">
  8. status=0 or status=2
  9. </if>
  10. </if>
  11. </where>

这样可以实现同样的效果,只有status不为null的时候才有条件查询,当为空的时候无条件查询,这样就简洁多了,看着也舒服!

发表评论

表情:
评论列表 (有 0 条评论,98人围观)

还没有评论,来说两句吧...

相关阅读

    相关 Java条件语句if判断嵌套语句

    if翻译过来是如果的意思,所以在我们的Java语言中,if的语法用来表示如果、就会,否则、就会。即,定义一个条件,满足该条件会输出什么,不满足又会输出什么。下面我们在测试类中来