Mysql两种批量更新的对比
简介:
mysql搭载mybits框架批量更新有两种方式,一种是在xml中循环整个update语句,中间以‘;’隔开,还有一种是使用case when 变相实现批量更新,现就两种方法的效率做以对比。
两种写法:
方法一:整体循环update语句
注意:mysql默认不支持一条预编译sql以 ’; ’ 分割这种方式执行,需要在mysql 的jdbcUrl参数上追加 allowMultiQueries=true开启支持
SQL如下:
update t_user
t_name = #{item.tName,jdbcType=VARCHAR},
t_age = #{item.tAge},
t_address = #{item.tAddress,jdbcType=VARCHAR},
t_pwd = #{item.tPwd,jdbcType=VARCHAR},
where t_id = #{item.tId};
该方法编写简单,便于理解,但是需要修改系统参数。
方法二:使用case when 方式拼接
SQL如下:
update t_user
when t_id=#{item.tId} then #{item.tName,jdbcType=VARCHAR}
when t_id=#{item.tId} then #{item.tAddress,jdbcType=VARCHAR}
when t_id=#{item.tId} the