ibatis模糊查询和动态组合查询配置

这几天用到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'%$propName$%'

              </isNotEmpty>

              <isNotEmpty prepend="AND" property="propType">

                    PROP_TYPE =#propType#

              </isNotEmpty>

        </dynamic>

    </sql>

<isPropertyAvailable>属性是存在
<isNotPropertyAvailable>
属性不存在
<isNull>
属性值是null
<isEmpty>
判断Collection.size<1String.length()<1
<isEqual>
等于
<isNotEqual>
不等于
<isGreaterThan>
大于
<isGreaterEqual>
大于等于
<isLessThan>
小于
<isLessEqual>
小于等于

 

这是参考http://blog.sina.com.cn/s/blog_6955fc9f010143pj.html网站的,如果想详细了解就到此网站看看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值