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 ﹥ 

  iBATIS动态查询解释:

  用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 ﹥  小于等于

你可能感兴趣的:(ibatis,jdbc)