1、<iterate>: 该标签用于遍历一个list。它有以下属性:
prepend:sql语句组成部分,可以被覆盖,可为and、or等,该选项是可选的
open:整个遍历内容开始前设置的字符串,常常设为‘(’。该选项是可选的
close:整个遍历内容结束时设置的字符串,常常为‘)’。该选项是可选的
conjunction:遍历内容中间间隔的字符串,可为‘,’、‘and’、‘or’等。该选项是可选的
property:遍历的list,类型为java.util.list,该选型明显是必须的。
例子:
<select id="queryData" parameterClass="java.util.List" resultClass="java.lang.String">
select password from userinfo where user_name in
<iterate open="(" close=")" conjunction=",">
#[]#
</iterate>
</select>
2、<dynamic>:
dynamic主要用于动态拼接sql语句,dynamic元素可以包含多个条件比较元素,并且按照条件比较元素的表述对参数值进行比较,来组装动态SQL。 这里主要的条件比较元素包含isGreaterThan、isNotNull、isEmpty……
dynamic中的prepend可以覆盖第一个为真子元素的prepend值。例如:
select * from usrinfo
<dynamic prepend="where">
<isNotNull property="name" prepend="and">
name=#name#
</isNotNull>
<isNotNull property="sex" prepend="and">
sex=#sex#
</isNotNull>
</dynamic>
若“name” isNotNull 为true,则sql语句为:select * from usrinfo where name=?and sex=?
select * from usrinfo where sex = 'femail'
<dynamic>
<isNotNull property="usrName">
and usrName = #name#
</isNotNull>
<isGreaterThan property="id" compareValue="0">
and id = #id#
</isGreaterThan>
</dynamic>
3、一元条件元素属性:
prepend(可选)、property(必选)
<isNotNull property="usrName">
<isNull property="usrName">
<isEmpty property="usrName">
<isNotEmpty property="usrName">
4、二元条件查询属性:
prepend(可选)、property(必选)、compareProperty、compareValue、后两个元素至少选一个
<isGreatorThan property="id" compareValue="0">
<isLessThanproperty="id" compareValue="0">
<isGreatorEqualproperty="id" compareValue="0">
<isLessEqual property="id" compareValue="20">
<isEqual propertu="id" compareValue="20">
<isNotEqual property="id" compareValue="20">