mybatis动态sql,条件判断详解示例

动态sql主要是解决我们进行条件查询时得应用,在之前我们需要对某个字段进行判断,直接在bao层实现类编写即可,因为它本身就是java类,写的Java代码,我们直接判断即可

但是使用XML得时候,我们得sql是写在xml中的,这样就无法编写代码,那么就可以使用动态sql

这里写目录标题

  • 1、if
  • 2、where
  • 3、Choose标签
  • 4、Set 标签
  • 5、Trim标签
  • 6、Foreach标签
  • 7、Bind标签
  • 8、sql

1、if

mybatis动态sql,条件判断详解示例_第1张图片if其中test属性使用的得就是ognl表达式,他在获取字段得时候,可以直接获取,不用编写#{}

2、where

mybatis动态sql,条件判断详解示例_第2张图片

where标签,之前在拼接条件查询的字符,会通过where 1=1进行 无条件查询。那么通过这个标签,会自动在sql后面添加where关键字进行拼接,并自动忽略 第一个and

3、Choose标签

这个标签相当于if。。else if
mybatis动态sql,条件判断详解示例_第3张图片

4、Set 标签

这个标签主要用于修改
举例:
编写接口
在这里插入图片描述
之前我们在进行数据修改的时候,我们到最后无论改不改动,都会自动提交,那么效率相当于在做无用功
那么我们就需要对像中的每个字段进行调用
mybatis动态sql,条件判断详解示例_第4张图片
但这总编写的有一个错误,那就是如果我们只改了某一个值得话,那么另一个值虽然不会拼接,但是第一个条件语句有一个‘,’
但是又不能没有,所以无法避免这种情况

这个时候就可以使用set关键字了
在这里插入图片描述
mybatis动态sql,条件判断详解示例_第5张图片
这样就很好得解决问题

5、Trim标签

mybatis动态sql,条件判断详解示例_第6张图片
mybatis动态sql,条件判断详解示例_第7张图片

6、Foreach标签

需求:
当想要获得多个id得数据,sql应该是:
在这里插入图片描述
那我们 正常在程序中应该写
mybatis动态sql,条件判断详解示例_第8张图片
正常sql写法
mybatis动态sql,条件判断详解示例_第9张图片但是我们想要操作,就需要用到forEach
其实我们在进行操作得时候,使用List,还有Array,都是存储在map中得,在这里插入图片描述使用标签进行遍历
mybatis动态sql,条件判断详解示例_第10张图片mybatis动态sql,条件判断详解示例_第11张图片

7、Bind标签

Bind标签主要用于模糊查询

模糊查询主要友两种方法,第一种是通过百分号,另一种是通过coucat
mybatis动态sql,条件判断详解示例_第12张图片

mybatis动态sql,条件判断详解示例_第13张图片

8、sql

mybatis动态sql,条件判断详解示例_第14张图片
在使用过程中,直接引入
在这里插入图片描述
如有帮助,请支持,一分不嫌少
mybatis动态sql,条件判断详解示例_第15张图片

你可能感兴趣的:(Mybatis,sql,数据库,java)