您的位置:首页 > 数据库

在ibatis框架中 拼接sql语句,动态查询 .

2012-12-04 14:45 726 查看
在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> 小于等于
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: