MyBatis学习(九)--动态SQL
动态SQL理解
处理多条件拼接问题,如,边界值。
1、if关键字:
动态SQL最常做的事就是有条件的包括where子句,如:
通过title寻找blog,title不一定有值:
2、choose关键字
有时候我们不想应用所有的条件,而是想从多个选项中选择一个。与java 中的switch 语句相似, MyBatis提供了一个choose 元素。
choose关键字一般和when,otherwise一起使用。如:
使用choose关键字判断title是否有值:
3、使用where关键字
可嵌套多个if,满足任意一个都可以执行。如:
4、使用trim关键字
和where类似。
注意:overrides属性使用了管道分隔的文本列表来覆写,而且它的空白也不能忽略的。这样的结果是移出了指定在overrides 属性里字符,而在开头插入prefix属性中指定的字符。prefixOverrides:覆写前面的;suffixOverrides:覆写后面的;
5、set关键字
set元素能够动态地更新列。
如:更新blog表,根据title列author_id的值,来判断是否更新这两列
注意:逗号
6、使用trim关键字实现更新
和set类似;
7、使用foreach关键字
通常用在IN条件句中。如:
查询id属于一个范围的blog,输入参数list;
PS:因博主能力有限,如有误还请谅解