在ibatis 拼接sql语句,动态查询

在ibatis中使用安全的拼接语句,动态查询
ibatis比JDBC的优势之一,安全高效
说明文字在注释中

  
< 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 >

 ------------------------------------------------------------------几个常用属性

<isPropertyAvailable> 属性是存在
<isNotPropertyAvailable> 属性不存在
<isNull> 属性值是null
<isEmpty> 判断Collection.size<1或String.length()<1
<isEqual> 等于
<isNotEqual> 不等于
<isGreaterThan> 大于
<isGreaterEqual> 大于等于
<isLessThan> 小于
<isLessEqual> 小于等于

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