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

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