ibatis 用法

            近日使用ibatis,把日常用法记录下来,以备以后用的时候能够再捡起来。ibatis的核心类是SqlMapClient。

            1.  直接使用sql语句,用法为:

            SqlMapClientImpl.update(String id);  

            这个可以在不需要接收外界传入参数时的更新语句时使用。

            2.  在一个SQL中更新多条记录的时候,用update(String id)效率更高,如:

update td_product t set t.update_type=2, t.is_indexed='0' where t.up_flag = 0

           而不能用显得有些浮肿的先创建对象,再获取对象的List,再对List进行批量操作的方法,如果这样,程序的开发速度慢不说,而且调试麻烦,程序的运行速度也低下,是事倍功半的做法。精简快速就是标准,要记住这个。

                  3.    配置文件示例:

<update id="openProductShow" parameterClass="com.mic.escrow.seller.bean.po.product.ProductBean">
        <![CDATA[
update td_product t set t.is_indexed='0'
        ]]>
        <dynamic>
            <isNotEmpty property="updateType">
                <isEqual property="updateType" compareValue="0" prepend=",">
                   <![CDATA[UPDATE_TYPE = 3 ]]>
                </isEqual>  
                <isEqual property="updateType" compareValue="1" prepend=",">
                   <![CDATA[UPDATE_TYPE = 2 ]]>
                </isEqual>  
            </isNotEmpty>
        </dynamic>
        <![CDATA[
        where t.CHECKEDPROD = 0 and t.PRODUCTSTATUS = '0'
        ]]>
    </update>
  这个语句的作用就是根据传出的参数updateType的值,动态执行SQL语句,当updateType的值为0时,执行条件update_type=3,当值为1时,执行条件update_type=2, prepend是语句的前缀。

 

                  当传入list参数时,可以使用这样的语句:

 <isNotNull property="emailFrom" prepend="and" removeFirstPrepend="true">
                <iterate property="emailFrom" open="(" close=")" conjunction="or" >
                    <![CDATA[ email_from = #emailFrom[]#]]>
                </iterate>
  </isNotNull>
          iterate用于迭代list中的值,这个语句用于item in (condition1,condition2)的场景,或者item=condition1 or item=condition2这样的情形。

 

 

更多知识请参照:http://www.iteye.com/forums/tag/iBATIS

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值