ibatis动态SQL语句
动态SQL语句
1)二元条件元素的属性:
prepend - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)
property - 被比较的属性(必选)
compareProperty - 另一个用于和前者比较的属性(必选或选择 compareValue)
compareValue - 用于比较的值(必选或选择 compareProperty)
<isEqual> 比较属性值和静态值或另一个属性值是否相等。
<isNotEqual> 比较属性值和静态值或另一个属性值是否不相等。
<isGreaterThan> 比较属性值是否大于静态值或另一个属性值。
<isGreaterEqual> 比较属性值是否大于等于静态值或另一个属性值。
<isLessThan> 比较属性值是否小于静态值或另一个属性值。
<isLessEqual> 比较属性值是否小于等于静态值或另一个属性值。
例子:

<isLessEqual prepend=”AND” property=”age” compareValue=”18”> 

 ADOLESCENT = 'TRUE' 

</isLessEqual>


2)一元条件元素的属性:
prepend - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)
property - 被比较的属性(必选)
<isPropertyAvailable> 检查是否存在该属性(存在 parameter bean 的属性) 。
<isNotPropertyAvailable> 检查是否不存在该属性(不存在 parameter bean 的属性) 。
<isNull> 检查属性是否为 null。
<isNotNull> 检查属性是否不为 null。
<isEmpty> 检查 Collection.size()的值,属性的 String 或 String.valueOf()值,
是否为 null或空( “”或size() < 1) 。
<isNotEmpty> 检查 Collection.size()的值,属性的 String 或 String.valueOf()值,
是否不为 null 或不为空( “”或 size() > 0) 。
例子:

<isNotEmpty prepend=”AND” property=”firstName” > 

 FIRST_NAME=#firstName# 

</isNotEmpty>


3)Iterate:这属性遍历整个集合,并为 List 集合中的元素重复元素体的内容。

Iterate 的属性:
prepend - 可被覆盖的 SQL 语句组成部分,添加在语句的前面(可选)
property - 类型为 java.util.List 的用于遍历的元素(必选)
open - 整个遍历内容体开始的字符串,用于定义括号(可选)
close -整个遍历内容体结束的字符串,用于定义括号(可选)
conjunction - 每次遍历内容之间的字符串,用于定义 AND 或 OR(可选)

<iterate> 遍历类型为 java.util.List的元素。
例子:

<iterate prepend=”AND” property=”userNameList” 

 open=”(” close=”)” conjunction=”OR”> 

 username=#userNameList[]# 

 </iterate>


#注意:使用<iterate>时,在List元素名后面包括方括号[]非常重要,方括号[]将
对象标记为List,以防解析器简单地将List输出成String。