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:因博主能力有限,如有误还请谅解

原文地址:https://www.cnblogs.com/WHL5/p/8721642.html