常用的几个关键字和属性:
isNotNull 参数不为null时有效
isNotEmpty 参数不为null或“”时有效
isPropertyAvailable 如果参数有使用则查询条件有效
prepend
生成的语句不会有多余的and,因为dynamic有一个隐藏的属性:removeFirstPrepend="true", 所以一般要写上prepend="and",需要的时候它会自动去掉。
Ibatis中的动态SQL,主要分为一元条件和二元条件查询:
一元条件查询关键字:
<isPropertyAvailable>如果参数有使用则查询条件有效。
<isNotPropertyAvailable>如果参数没有使用则查询条件有效。
<isNull>如果参数为NULL则查询条件有效。
<isNotNull>如果参数不为NULL则查询条件有效。
<isEmpty>如果参数为空则查询条件有效。
<isNotEmpty>如果参数不为空则查询条件有效。参数的数据类型为Collection
String 时参数不为NULL或“”。如下所示:
<isNotEmpty prepend=”AND” property=”firstName”>
FIRST_NAME=#firstName#
</isNotEmpty>
一元元素的属性:
prepend:可被覆盖的SQL语句组成部分,添加在语句的前面。
property:被比较的属性
二元条件查询关键字:
<isEqual>如果参数相等于值则查询条件有效。
<isNotEqual>如果参数不等于值则查询条件有效。
<isGreaterThan>如果参数大于值则查询条件有效。
<isGreaterEqual>如果参数等于值则查询条件有效。
<isLessEqual>如果参数小于值则查询条件有效。如下所示:
<isLessEqual prepend = ”AND” property = ”age” compareValue = ”18” >
ADOLESCENT = ‘TRUE’
</isLessEqual >
二元元素的属性:
prepend: 可被覆盖的SQL语句组成部分,添加在语句的前面。
property: 被比较的属性
compareProperty: 另一个被比较的属性
compareValue: 被比较的值
此外,还有其它的元素:
1.<isParameterPresent>
如果参数类不为NULL则查询条件有效。
实例:
<isNotParameterPresent prepend=”AND”>
EMPLOYEE_TYPE = ‘DEFAULT’
</isNotParameterPresent >