今天写数据库批量更新时,碰到了一个令人窒息的问题。什么都准备好,sql语句也测试好了,但是一运行就是报sql语句语法有错误,后来花了一两个小时才找到到底怎么回事?
原来是还要设置MySQL支持批量操作!!!
接下来展示一下整个批量更新实现过程:
1、设置MySql支持批量操作
allowMultiQueries=true
在自己的相应数据库驱动设置中设置上这个属性,使得数据库支持批量操作
2、批量操作
OrdersDao
/**
* 结算时批量插入订单数据
* @param orders
*/
public void batchUpdateOrders(List<Orders> orders);
OrdersDao.xml
<update id="batchUpdateOrders" parameterType="java.util.List">
<foreach collection="list" item="item" index="index" open="" close="" separator=";">
update orders set create_time = #{item.create_time},isBought = 1 where order_id = #{item.order_id}
</foreach>
</update>
这样进行请求就可以了。