http://developer.51cto.com/art/200907/136553.htm
http://developer.51cto.com/art/200907/138596.htm
iBATIS动态查询是如何实现的呢?我们将会在本篇文章内向你介绍iBATIS动态查询的情况
iBATIS动态查询的实现主要是在iBATIS中使用安全的拼接语句,动态查询
iBATIS比JDBC的优势之一,安全高效
iBATIS动态查询实例:(说明文字在注释中)
- ﹤ select id= "selectAllProducts" parameterClass= "Product" resultMap= "ProductResult" ﹥
- select id,note from Product
- ﹤ dynamic prepend= "WHERE" ﹥
- ﹤! --isNotNull判断参数是否存在,Integer类型--﹥
- ﹤isNotNullproperty= "id" ﹥
- ﹤! --isGreaterThan判断参数是否大于compareValue,isGreaterEquals是大于等于--﹥
- ﹤isGreaterThanprepend= "and" property= "id" compareValue= "0" ﹥
- id=#id#
- ﹤/isGreaterThan﹥
- ﹤/isNotNull﹥
- ﹤! --isNotEmpty判断字串不为空,isEmpty可以判断字串为空--﹥
- ﹤isNotEmptyprepend= "and" property= "note" ﹥
- ﹤! --模糊查询不能用#,#在是用prepareStatement的?插入参数,$是文本替换--﹥
- note like '%$note$%'
- ﹤/isNotEmpty﹥
- ﹤/ dynamic ﹥
- ﹤/ select ﹥
iBATIS动态查询解释:
用Map传参数
- ﹤selectid= "selectAllProducts" parameterClass= "java.util.HashMap" resultMap= "ProductResult" ﹥
- selectid,notefromProduct
- ﹤dynamicprepend= "WHERE" ﹥
- ﹤!--isPropertyAvailable判断属性是否有效--﹥
- ﹤isPropertyAvailableproperty= "id" ﹥
- ﹤isNotNullproperty= "id" ﹥
- ﹤!--isLessThan判断参数是否小于compareValue,isLessEquals是小于等于--﹥
- ﹤isLessThanprepend= "and" property= "id" compareValue= "10" ﹥
- id=#id#
- ﹤/isLessThan﹥
- ﹤/isNotNull﹥
- ﹤/isPropertyAvailable﹥
- ﹤/dynamic﹥
- ﹤/select﹥
iBATIS动态查询几个常用属性
﹤ isPropertyAvailable ﹥ 属性是存在
﹤ isNotPropertyAvailable ﹥ 属性不存在
﹤ isNull ﹥ 属性值是null
﹤ isEmpty ﹥ 判断Collection.size ﹤ 1 或String.length()﹤1
﹤isEqual ﹥ 等于
﹤ isNotEqual ﹥ 不等于
﹤ isGreaterThan ﹥ 大于
﹤ isGreaterEqual ﹥ 大于等于
﹤ isLessThan ﹥ 小于
﹤ isLessEqual ﹥ 小于等于
iBATIS动态查询的相关信息就向你介绍到这里,希望对你了解iBATIS动态查询有所帮助。