前言
最近做东西一直用的mybatis。mybatis除过简单的xml映射外,还可以提供动态的sql语句,既然是动态的那功能肯定就更加强大了。我来记录一下这几天经常用到的。当然,这些东西官网都有,更权威。官网
正文
何为动态?在我的理解里面是动态即条件。根据不同的条件执行不同的代码。用过jstl和el的稍微看看就会用了。
if
choose
这两个标签在jstl和el中也是很常用的。
<if test="">expression</if>
choose语句比if最主要是可以选择所有情况之外的。
<choose>
<when test="id != null">
id = #{repertoryid,jdbcType=VARCHAR}
</when>
<when test="id == 1">
id = 11
</when>
<otherwise>
id = 22
</otherwise>
</choose>
<where>
<set>
where和set的作用官网举了一个具体例子
我是这么认为的:<where>
和<set>
至少包含一个满足条件的元素才会插入where
、set
,并且会自动去除and
、or
.
感觉还是在XML中多写写有用。