Mybatis 批量更新
2016-04-23 18:18
288 查看
需求:从购物车页面点击结算,需要修改 书本 的销量和库存。但是用户很可能买了很多类书,每类书有好几本,如果在java里做循环,则发生多次数据库请求,效率低。
mybatis接受 类型 为list的参数,并支持动态sql,用iterator拼装sql语句。
但是!这样只适用于list中只有一个对象的情况。一旦有多个对象则报错!
为了这个问题苦恼了很久,最后找到了一个解决办法,那就是设置数据库连接属性:allowMultiQueries=true。
意思是允许MySQL同时执行多条SQL语句。
设置好这个,就OK了!
mybatis接受 类型 为list的参数,并支持动态sql,用iterator拼装sql语句。
<update id="batchUpdateAmount" parameterType="java.util.List"> <foreach collection="list" item="item" index="index" open="" close="" separator=";"> update books set salesAmount = salesAmount + #{item.quantity}, storeNumber = storeNumber - #{item.quantity} where bookId = #{item.book.bookId} </foreach> </update>
但是!这样只适用于list中只有一个对象的情况。一旦有多个对象则报错!
为了这个问题苦恼了很久,最后找到了一个解决办法,那就是设置数据库连接属性:allowMultiQueries=true。
jdbc.url=jdbc:mysql://localhost:3306/bookdb?allowMultiQueries=true
意思是允许MySQL同时执行多条SQL语句。
设置好这个,就OK了!
相关文章推荐
- tomcat(8)载入器
- HDU_1203_01背包
- 安卓等边三角形
- 4.20日第13次作业.,20章战略管理,21章业务流程管理和重组,22章知识管理,高项,29-田哲琦
- Android 根据包名,获取应用程序的签名
- 解决 id_rsa 权限不够
- MarkDown学习
- TCP/UDP 伪首部
- Linux下redis的安装
- 第九周项目3—人数不定的工资类
- java之RTTI和反射的理解
- groovy入门5 IO
- Struts2文件下载
- 夺命雷公狗ThinkPHP项目之----企业网站9之栏目的列表完善(无限极分类的完成)
- (function($){})(jQuery)
- centos-mysql 安装
- Java中常用的查找算法——顺序查找和二分查找
- 深入理解JAVA虚拟机(概念泛谈)
- HDU_1421_搬寝室_dp
- ajax知识点