博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

在次转发IBATIS模糊查询

Posted on 2009-01-17 11:24  菠萝  阅读(602)  评论(0编辑  收藏  举报

<!--
在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> 小于等于