【Mybatis】- 动态SQL
Mybatis有一项强大的功能-动态SQL,我们可以通过动态SQL为SQL语句加上一些逻辑判断,免除使用JDBC时不同条件拼接SQL的痛苦,下面我们来看一些常见动态SQL标签的应用;
1、判断
- if
作为判断入参来使用的,如果符合条件,则把if标签体内的SQL拼接上
- choose(when,otherwise)
choose是特殊化的if,相当于if…else…,一个 choose 标签至少有一个 when, 最多一个otherwise;
2、内容处理
- trim
trim可用于动态内容头尾的处理,可以添加前缀prefix或者添加后缀suffix
也可以移除匹配的指定的前缀prefixOverrides,或者移除匹配的指定的后缀suffixOverrides
- where
where标签里面的if为真时,它才会把WHERE子句包含进入,而且会自动调整AND是否存在
- set
set元素则是应用于更新,加入我们要更新某个字段
3、循环
- foreach
foreach是一个循环语句,主要用于构建 in 条件,在 sql 中对集合进行遍历,如果传入的是一个List、Set接口的集合,这个时候就用到foreach啦;
未完待续。。。