iBATIS动态查询的实现浅析
iBATIS动态查询的实现主要是在iBATIS中使用安全的拼接语句,动态查询iBATIS比JDBC的优势之一,安全高效
iBATIS动态查询实例:(说明文字在注释中)
﹤ select id ="selectAllProducts" parameterClass ="Product" resultMap ="ProductResult" ﹥ select id,note from Product ﹤ dynamic prepend ="WHERE" ﹥ ﹤!-- isNotNull判断参数是否存在,Integer类型 --﹥ ﹤ isNotNull property ="id" ﹥ ﹤!-- isGreaterThan判断参数是否大于compareValue,isGreaterEquals是大于等于 --﹥ ﹤ isGreaterThan prepend =" and " property ="id" compareValue ="0" ﹥id = #id# ﹤/ isGreaterThan ﹥ ﹤/ isNotNull ﹥ ﹤!-- isNotEmpty判断字串不为空,isEmpty可以判断字串为空 --﹥ ﹤ isNotEmpty prepend =" and " property ="note" ﹥ ﹤!-- 模糊查询不能用#,#在是用prepareStatement的?插入参数,$是文本替换 --﹥note like '%$note$%' ﹤/ isNotEmpty ﹥ ﹤/ dynamic ﹥ ﹤/ select ﹥
用Map传参数
﹤ select id ="selectAllProducts" parameterClass ="java.util.HashMap" resultMap ="ProductResult" ﹥ select id,note from Product ﹤ dynamic prepend ="WHERE" ﹥ ﹤!-- isPropertyAvailable判断属性是否有效 --﹥ ﹤ isPropertyAvailable property ="id" ﹥ ﹤ isNotNull property ="id" ﹥ ﹤!-- isLessThan判断参数是否小于compareValue,isLessEquals是小于等于 --﹥ ﹤ isLessThan prepend =" 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 ﹥ 小于等于
转载自:http://hi.baidu.com/dxbg_134/blog/item/0f90d909b7fe8bd863d98665.html
页:
[1]