被它们坑了好久,故此记录下。
在ibatis中
用isNotNull 时, 当其中一个的参数为空时,会默认把那个参数设为 " " 来用作查询。
eg:
<isNotNull prepend="AND" property="price">
<![CDATA[
price >= #price#
and price <= #price1#
]]>
</isNotNull>
之前的ibatis查询中有一个是这样写的,我什么都不输入时点查询按钮的时候,怎么什么数据都没有呢?
后来经过了一番斗争,试着用isNotEmpty代替了,如下
<isNotEmpty prepend="AND" property="price">
<![CDATA[
price >= #price#
and price <= #price1#
]]>
</isNotEmpty>
问题就解决了!
终于明白了isNotEmpty是这样处理的,如果参数为空,就不执行<isNotEmpty></isNotEmpty>之间的查询语句的。
之前一直显示不了数据是因为,ibatis把 price>=' ' 和price<=' ' 这两句语句也拿去执行了,所以什么都查不出来!!!
总结了下,如果是模糊查询就用<isNotNull>,如果是准确查询就用<isNotEmpty>
如有错误,烦请纠正,谢谢!
---update
ibatis和mybatis区别
ibatis中查询的结果是String时需加上 resultClass="java.lang.String"
而mybatis中是 resultType="String"