ibatis批量操作  这文章的补充吧。

review代码的时候发现一个页面应用排序设置功能,原先代码中,进行了循环update实现。虽然应用较少,不过无谓浪费数据库链接实在不是一个好的想法。

所以,我觉得应该杜绝循环中的任何数据可操作才能避免很多地雷的埋下。

修改后:

批量更新语句的写法,基于ibatis,只使用iterate  标签:

    <update id="batchUpdateShowOrder" parameterClass="map">
update wi_open_app_sub_new set gmtModified=NOW() , showOrder =
<iterate property="apps" open="case" close="end" >
when appId=#apps[].appId# then #apps[].showOrder#
</iterate>
where merchantId=#merchantId# and appId in
<iterate property="appIds" open="(" close=")" conjunction=",">
#appIds[]#
</iterate>
</update>

实现sql语句:

update wi_open_app_sub_new set
showOrder = case when appid =10199 then 1 when appid =4 then 2 when appid =3 then 3 when appid =10134 then 4 when appid=1 then 5 when appid=5 then 6 end
where
merchantid='8a22b1864b498152014b498246610001' and appid in( 10199, 4, 3 , 10134, 1, 5 );

ibatis批量操作补充的更多相关文章

  1. 【ibatis】IBatis的SQL批量操作

    1.Ibatis批量添加(传入class的list即可) <insert id="Add" resultMap="Select" parameterCla ...

  2. Hibernate和IBatis对比

    [转自]http://blog.csdn.net/ya2dan/article/details/7396598 项目也做过几个, 使用IBatis就做一个项目, 基本上都是使用Hibernate, 也 ...

  3. MyBatis的几种批量操作

    MyBatis中批量插入 方法一: <insert id="insertbatch" parameterType="java.util.List"> ...

  4. java面试总结-(hibernate ibatis struts2 spring)

    说说Hibernate对象的三种状态 Hibernate对象有三种状态,分别是:临时态(Transient). 持久态(Persistent).游离态(Detached). 临时状态:是指从对象通过n ...

  5. Spring + iBatis 的多库横向切分简易解决思路

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  6. mybatis和ibatis区别

     ibatis本是apache的一个开源项目,2010年这个项目由apache software foundation 迁移到了google code,并且改名为mybatis.  1.Mybat ...

  7. Struts2+Spring+Ibatis集成合并

    上一篇博客讲述了Struts2+Spring的集成合并,主要是利用了一个中间jar包,这篇博客在加上Ibatis持久层框架,三个框架进行合并.其中Struts2和Spring部分和前边的一样,主要是讲 ...

  8. Ibatis之3个不经常使用的Query方法

    1.queryForObject /** * Executes a mapped SQL SELECT statement that returns data to populate * the su ...

  9. Ibatis教程

    Ibatis教程 |字号     转自:http://blog.csdn.net/lhminjava/article/details/1871136 ibatis 开发指南ibatis Quick S ...

随机推荐

  1. ATI Radeon HD 5450 with full QE/CI Support ( 转载 )

    ATI Radeon HD 5450 with full QE/CI Support - DSDT (Contains HDMI Audio Edit Too) & AGPM included ...

  2. 20161106PM-Fiddler

    1. 设置Fidder使之支持HTTPS协议 Tools->Fiddler Options->HTTPS->勾上Decrypt HTTPS traffic->OK 2. 断点 ...

  3. 数据库连接池配置 - Oracle,SQL Server,DB2,MYSQL,SQLLITE3

    ################## 数据库连接配置 ################## #Oracle#hibernate.connection.driverClass=oracle.jdbc.d ...

  4. iOS OAuth2.0认证和SSO授权

    OAuth2.0和SSO授权   一.OAuth2.0授权协议 一种安全的登陆协议,用户提交的账户密码不提交到本APP,而是提交到授权服务器,待服务器确认后,返回本APP一个访问令牌,本APP即可用该 ...

  5. Django ModelForm and Form

    django表单系统中,所有的表单类都作为django.forms.Form的子类创建,包括ModelForm 关于django的表单系统,主要分两种 基于django.forms.Form 基于dj ...

  6. Beaglebone Black–I2C 接 BMP280 获取当前温度

    我有两个含温度传感的模块,一个是AOSONG 奥松电子的 AM2320 温度湿度,另一个是九轴里面的 Bosch BMP280.由于 AM2320 用 I2C MODBUS,直接用 I2C Tools ...

  7. Http 状态码对照表

    1xx 消息 1. 100 Continue       2. 101 Switching Protocol       3. 102 Processing 2xx 成功 1. 200 OK      ...

  8. windows下安装redis和memcached

    redis安装: http://www.68idc.cn/help/server/20141128135092.html phpredis下载地址:https://github.com/phpredi ...

  9. IE6/7常用的hack

    hack基础: IE6: _selector{property:value;} selector{property:value;property:value !important;} //IE6 不支 ...

  10. JavaScipt 源码解析 数据缓存

    常见的内存泄露的几种情况: 循环引用 JavaScript闭包 DOM插入 一个DOM对象被一个JavaScript对象引用,同时又引用同一个或其他的JavaScript对象,这个DOM对象可能回引发 ...