动态sql的作用:传统的使用JDBC的方法,相信大家在组合复杂的的SQL语句的时候,需要去拼接,稍不注意哪怕少了个空格,都会导致错误。Mybatis的动态SQL功能正是为了解决这种问题, 其通过 if, choose, when, otherwise, trim, where, set, foreach标签,可组合成非常灵活的SQL语句,从而提高开发人员的效率。
if :如果存在,就按照
choose-when-otherwise:从其中选择一项,类似于java的switch
where: 只会在至少有一个子元素的条件返回 SQL 子句的情况下才去插入“WHERE”子句
trim : 如果 where 元素没有按正常套路出牌,自定义 trim 元素来定制 where 元素的功能
foreach :是对一个集合进行遍历,通常用在in后
<include refid=""></include>,引用其他的动态sql片段
还有一篇写的很全的关于动态sql的博客,贴在下面: