日期:2014-05-16 浏览次数:20438 次
这几天用到ibatis的模糊查询和动态查询,在网上找了好多资料,现在把方法总结如下:
模糊查询
首先是模糊查询的问题,开始时我使用如下条件:select * from user wherename like '%#value#%'. 可是怎么也不行,好像还报错了.后来在网上找到了解决方法,就是使用$来代替#号.
1>写成: like '%$value$%' 就可以了, 模糊查询不能用#,#是用prepareStatement的插入参数,$是文本替换 。
2>同时还找到另一个方法: like '%' || #value# || '%' , 查询出来的结果也是正确的,但是在网上有人说这个写法是oracle的写法,至于在其他数据库中内否运行成功就没有试过。
动态查询
多条件组合查询,开始时,我也在想这个问题,总不能为每一个查询都写一个SQL配制吧,这样太........后来参考一些文档,发现,原来IBATIS里提供了动态映射.示例如下:
<sql id="TsimpSysOrgProp.findPage.where">
<dynamic prepend="WHERE">
<isNotEmpty prepend="AND" property="id">
ID = #id#
</isNotEmpty>
<isNotEmpty prepend="AND" property="propCode">
PROP_CODElike '%$propCode$%'
</isNotEmpty>
<isNotEmpty prepend="AND" property="propName">
PROP_NAME like'%$p