MyBatis动态sql

Posted myquen

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis动态sql相关的知识,希望对你有一定的参考价值。

MyBatis中的sql语句可以用动态生成,及用条件判断来拼写sql语句

  1.使用if+where 来拼写sql语句

  技术分享图片

  如图,根据传入的参数用if判断来拼写sql

  2.使用trim+if实现sql的拼写

  技术分享图片

  如图:trim中有一些属性:

      《1》prefix:前缀

      《2》prefixOverrides="and | or" 重写前缀,避免出现对于的and或者or

      《3》suffix=“” 后缀,及在trim结尾加

      《4》suffixOverrides=""后缀重写,在每个if中sql语句后加,避免多余

  3.更新用if+set  (set会自动忽略掉结尾的,)

   技术分享图片

  4.当需要用到范围操作的时候通常用foreach

  如:

  技术分享图片

  用foreach循环便利出传入参数list中的变量。foreach的属性如图所示:

  collection=“”:如果传入的参数为数字则写 Array,如果传入的参数为list的话则写list,如果传入参数为map则写map中对应的键名

  item:指的是当前对象

  open:开头

  close:结尾

  separator:分隔符

  5.使用choose(when,otherwise)类似于java中switch

    技术分享图片

  otherwise指的是其他条件

以上是关于MyBatis动态sql的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis 动态SQL

MyBatis:动态sql语句

mybatis 动态SQL .2

mybatis 详解------动态SQL

mybatis 详解------动态SQL

MyBatis学习——动态SQL