Mybatis动态SQL介绍和实例
在实际开发中,业务需要,查询条件是不确定的,查询条件可能有多条也可能没有,这时候就需要用到动态的sql语句实现查询条件判定。
一、if标签
在一些高级查询中,查询条件存在的个数不确定。如,SELECT * FROM user WHERE username LIKE '%明%' AND sex = '1';
例子1:
例子2:
二、choose, when, otherwise 元素
类似于Java 的 switch 语句,choose 为 switch,when 为 case,otherwise 则为 default。choose 是或(or)的关系。用于分支判断,类似于java中的switch case,只会满足所有分支中的一个
例子1:
choose 类似 switch,when 类似 case,otherwise 类似 default
三、trim
trim元素来定制想要的功能
trim 可以在条件判断完的SQL语句前后 添加或者去掉指定的字符
prefixOverrides 去掉前缀
suffix 添加后缀
suffixOverrides 去掉后缀
例子1:
例子2:
四、set标签
set 元素可以被用于动态包含需要更新的列,而舍去其他的。
用于解决修改操作中SQL语句中可能多出逗号的问题
例子1: