sql 批量跟新sql 语句
2022/1/7 19:33:36
本文主要是介绍sql 批量跟新sql 语句,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
问题:
更新一批数据,根据不同code 更新不同的时间。
code 不是主键 。但是也是唯一的。
解决:
mybatis-plus 有批量更新的方法
都是根据ID 更新。
没法解决问题。
写 sql 语句。
entity层
@Data public class UpdateOrderDto { /** * 订单号 */ private String orderCode; /** * 买家支付时间 */ private String paymentTime; }
service层
boolean updateOrderPaymentTime(List<UpdateOrderDto> updateOrderDto);
impl层
@Override public boolean updateOrderPaymentTime(List<UpdateOrderDto> updateOrderDto) { orderMapper.updateOrderPaymentTime(updateOrderDto); return true; }
mapper层
int updateOrderPaymentTime(@Param("updateOrderDto") List<UpdateOrderDto> updateOrderDto);
xml层 重点
<update id="updateOrderPaymentTime"> UPDATE htc.htc_order a JOIN ( <foreach collection="updateOrderDto" item="item" separator="UNION"> SELECT <!--使用 ${} shardingsphere官方问题 详细参考 github issues:https://github.com/apache/shardingsphere/issues/8108--> "${item.paymentTime}" AS payment_time, "${item.orderCode}" AS order_code </foreach> ) b USING (order_code) SET a.payment_time = b.payment_time </update>
将 传进来的list集合 ,循环查询集合属性取别名,与数据库字段相对应,最后取并集。
通过 USing 的 用法,进行更新操作。妙哉!
test用例
说的不是很清楚,理解尚浅,以后深度理解,在做分析。
明亮教的方法,仅此做记录。
这篇关于sql 批量跟新sql 语句的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-26Mybatis官方生成器资料详解与应用教程
- 2024-11-26Mybatis一级缓存资料详解与实战教程
- 2024-11-26Mybatis一级缓存资料详解:新手快速入门
- 2024-11-26SpringBoot3+JDK17搭建后端资料详尽教程
- 2024-11-26Springboot单体架构搭建资料:新手入门教程
- 2024-11-26Springboot单体架构搭建资料详解与实战教程
- 2024-11-26Springboot框架资料:新手入门教程
- 2024-11-26Springboot企业级开发资料入门教程
- 2024-11-26SpringBoot企业级开发资料详解与实战教程
- 2024-11-26Springboot微服务资料:新手入门全攻略