Mybatis的动态SQL

if,where语句

Mybatis的动态SQL
where标签:提供关键字where,并且可以去除多余的and,当没有一个条件满足时,去除关键字where

if:写条件判断,test是判断语句

choose、when、otherwise

Mybatis的动态SQL
在mybatis中,只有if,没有else
如果表示else可以通过 choose选择结构表示
choose 类似 switch选择结构,otherwise 类似 switch中的 default,类似 if中的else

if、when的区别:

1.if可以同时满足多个条件
2.when 只能满足一种情况,如果都不满足,执行otherwise

set

Mybatis的动态SQL
标签 相当于 关键字set.
set 除了作为关键字,还可以去除多余的,不符合if条件的set,

trim(高级用法)

if 判断,可以同时满足多个条件
choose 选择结构
when 判断,只能满足其中一个。可以写otherwise ,相当于else,switch 里面的 default
set 替换set关键字,去掉最后一个 ,
where 替换where关键字,去掉第一个and 或者 or
trim标签的用法相对比 set、where更加全能,既可以实现动态查询,也可以实现动态修改、添加。

使用trim实现where的功能Mybatis的动态SQL
使用trim 取代 set 实现动态修改
Mybatis的动态SQL

foreach

Mybatis的动态SQL