现在的位置: 首页 > 综合 > 正文

Ibatis模糊查询

2018年05月20日 ⁄ 综合 ⁄ 共 1509字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.