当前位置: 首页 > wzjs >正文

四川兴昌建设有限公司网站发稿

四川兴昌建设有限公司网站,发稿,做兼职比较好的网站有哪些,免费建站网站一级大录像不卡在线看网页工作中遇到批量更新的场景其实是比较常见的。 但是该如何正确的进行批量UPDATE,很多时候往往有点头大。 这里列2种可用的方式,供选择(请选择方式一,手动狗头。)。 如果使用了MyBatis增强组件MyBatisPlus 如果使用了MyBatisPlus,…

工作中遇到批量更新的场景其实是比较常见的。
但是该如何正确的进行批量UPDATE,很多时候往往有点头大。
这里列2种可用的方式,供选择(请选择方式一,手动狗头。)。

如果使用了MyBatis增强组件MyBatisPlus

如果使用了MyBatisPlus,可以参考官网给出的解决方式(updateBatchById),或者自己查一下。


批量UPDATE方式一:SQL内foreach

举个??

<update id="updateUserForBatch" parameterType="com.bees.srx.entity.UserEntity"><foreach collection="list" item="entity" separator=";">UPDATE sys_userSET password=#{entity.password},age=#{entity.age}<where>id = #{entity.id}</where></foreach>
</update>

这样写,肯定比 在业务方法中for循环单条update的效率是要高的。
但是如果遇到大批量的更新动作,可能也会产生效率低下的问题。
原因是SQL内的foreach本质上还是循环插入每一条数据,会产生 list.size() 个单条插入的独立SQL语句,每一条 UPDATE 语句都会被单独发送到数据库服务器执行。
这意味着如果列表中有100个元素,就会产生100次数据库往返通信。
这种方式不仅效率低下,而且对于大型批处理操作来说,可能会导致性能瓶颈和资源浪费。

优化:通过JDBC批处理
通过 MyBatisSqlSession 提供的批处理功能来手动执行批量更新。

try (SqlSession session = sqlSessionFactory.openSession(ExecutorType.BATCH)) {UserMapper mapper = session.getMapper(UserMapper.class);for (UserEntity user : userList) {mapper.updateUser(user);}session.commit();
}

这里mapper.updateUser就是单条的UPDATE语句。

通过这种方式,MyBatis 会在内存中积累所有的更新命令,然后在调用session.commit() 时一次性提交给数据库,这比逐条执行要高效得多。

注意:是否存在效率差异,未实践过!!!可能存在误人子弟的嫌疑。

批量UPDATE方式二:INSERT + ON DUPLICATE KEY UPDATE
 <update id="updateForBatch" parameterType="com.bees.srx.entity.UserEntity">insert into sys_user(id,username,password) values<foreach collection="list" index="index" item="item" separator=",">(#{item.id},#{item.username},#{item.password})</foreach>ON DUPLICATE KEY UPDATEpassword=values(password)
</update>

不建议使用。要求较多,而且容易出现死锁。

注意事项

  • 唯一键约束:确保 sys_user 表中的 id 字段有唯一键约束(通常是主键)。如果 id 不是唯一的,ON DUPLICATE KEY UPDATE 将不会触发更新操作。
  • 性能:这种方式在大数据量的情况下比多次单独的 INSERT 和 UPDATE 操作要高效得多。
  • 事务管理:确保这个操作在一个事务中执行,以保证数据的一致性。如果中间发生错误,可以回滚整个操作。
  • 字段顺序:确保 VALUES 函数中的字段顺序与 ON DUPLICATE KEY UPDATE 子句中的字段顺序一致。
总结:

建议使用方式一,或者其优化方式(JDBC批处理)。
各位也可以与AI对话看看给出的建议是什么。


有问题一定要留言啊各位。及时发现及时改错。

http://www.dtcms.com/wzjs/470912.html

相关文章:

  • 阿里云服务器免费试用保定百度推广优化排名
  • 网站开发服务器网站源码平台
  • 网站建设公司 知乎百度账号一键登录
  • 新余建设网站湘潭网站seo
  • 网页设计html代码翻译seo自动排名软件
  • 广州建立公司网站多少钱模板网站建站哪家好
  • 做外贸的人如何上国外网站seo搜索引擎优化课程
  • 小网站如何做武汉seo关键字优化
  • 香港公司注册开户多少钱seo推广一年要多少钱
  • 夜夜做新郎网站在线视频昆明网站开发推广公司
  • 黑龙江做网站的公司绍兴seo排名公司
  • 珠海网站建设q479185700强涵腾讯企点官网
  • 做兼职拍照片传网站2022知名品牌营销案例100例
  • 怎样做免费网站卖东西阿里巴巴国际站运营
  • 南京小程序开发制作杭州网站优化效果
  • 福田企业网站推广公司营销网站建设选择原则
  • 毕业设计旅游网网站设计最新一周新闻
  • 响应式 网站建设河南省干部任免最新公示
  • 新乡营销型网站建设北京做网络优化的公司
  • 网站备案收费吗学大教育培训机构怎么样
  • 怎样做关键词网站连接种子搜索引擎
  • 网络咨询服务公司经营范围百度seo优化价格
  • 式网站台州网站建设平台
  • 做广告的公司seo优化在线
  • 赣州专业网站推广淘宝标题优化工具推荐
  • 天津中心网站建设电脑版百度
  • 行业网站需要如何做实训百度搜索引擎的总结
  • 动漫设计与制作属于计算机类吗seo外包服务方案
  • 公司网站建设一般要多少钱湖南正规关键词优化报价
  • 医院网站建设投标要求网址大全是ie浏览器吗