映射文件:
<select id="getProductDynamic2" resultMap="get-product-result" parameterClass="product">
<![CDATA[
select * from t_product
]]>
<dynamic prepend="WHERE">
<isNotNull prepend="AND" property="price">
prd_price=#price#
</isNotNull>
<isNotEmpty prepend="AND" property="description">
prd_description=#description#
</isNotEmpty>
</dynamic>
</select>
注意:CDATA不应包括<dynamic>节点,否则标签不起作用!
DAO层:
public List getProductDynamic2(Product product) throws SQLException {
init();
List list = (List)sqlMapClient.queryForList("getProductDynamic2", product);
return list;
}
TEST类:
public void getProductDynamic2() throws SQLException {
Product product = new Product();
product.setPrice(206.99d);
product.setDescription("basketball");
List list1 = productDao.getProductDynamic2(product);
for(Iterator it=list1.iterator(); it.hasNext();) {
Product prd = (Product)it.next();
System.out.println(prd);
}
/**
* 注意:product2里的price(是double型,不是Double型)的值没有设置,所以默认为初始化时的值(0),而不是NULL,
传入到sqlmap映射文件时,被包装成Double类型(ibatis中传入参数的都是引用类型),值为0,
这对statement里的动态语句有影响!
*/
Product product2 = new Product();
product2.setDescription("basketball");
List list2 = productDao.getProductDynamic2(product2);
for(Iterator it=list1.iterator(); it.hasNext();) {
Product prd = (Product)it.next();
System.out.println(prd);
}
}
一元判定
是针对属性值本身的判定,如属性是否为NULL,是否为空值等。
<isEmpty>
检查Collection.size()的值,属性的String或String.valueOf()值,是否为null或空(“”或size() < 1)。
二元判定
有两个判定参数,一是属性名,而是判定值,如
<isGreaterThan prepend="AND" property="age" compareValue="18">
(age=#age#)
</isGreaterThan>
分享到:
相关推荐
iBatis最全的动态SQL语句,你需要的都有,资源在于大家共享
动态sql拼接
因为要下载其它的文件,所以从网站复制了一些其它的资源进行上传。但是这个资源是相当有用的。这里感谢之前总结相关技术的人员。谢谢
自己整理的非常好用 好东西向大家分享 └ ^o^ ┘
ibatis16个常用sql语句
转ibatis动态sql - phoebus0501 - 博客园.mht
在ibatis日志信息中打印SQL语句的方法(个人总结)
通过java程序查看ibatis配置文件中的sql语句(注:无法查看变量值)
ibatis_动态查询条件详解及需要注意的地方
ibatis 开发指南 和 iBATIS-SqlMaps两本图书
ibatis动态多条件组合查询 实例 说明
主要是关于oracle ibatis 的一些sql
[iBATIS]sql转换工具 简单哦~ 项目组自己写的哦~分享给大家了
ibatis2.0+sqlserver2005环境搭建
ibatis常用的sql语句,很全的一篇文档。。。
Ibatis SQL Map 动态SQL 事务处理 缓存机制
ibatis常用sql语句,简单易懂,方便查询,初学者宝典
ibatis sql生成器 部署成web app 支持多数据库。
这个文件中包含了许多ibatis的查询语句,能够让你很清楚的知道,如何实现动态的查询。
iBATIS-SqlMaps-2-Tutorial_cniBATIS-SqlMaps-2-Tutorial_cn.pdf.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdfiBATIS-SqlMaps-2-Tutorial_cn.pdf