dengminhui 发表于 2013-2-7 15:59:23

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]
查看完整版本: iBATIS动态查询的实现浅析