Mybatis批量插入更新xml方式和注解方式的方法实例
前言
最近工作上遇到很多批量插入的场景,但是百度很难得到我想要的结果,而且查出来的效果不是很好~
所以就自己来写一份给大家参考,希望对大家有用
Mybatis 批量插入注解形式
@Insert("<script> INSERT INTO t_device_policy " + "(id,device_id,type,policy,create_time,update_time) " + "VALUES " + "<foreach collection = 'list' item='list' separator=',' > " + " (#{list.id},#{list.deviceId},#{list.policyType},#{list.policy},#{list.createTime},#{list.updateTime}) " + "</foreach>" + "</script>") int insert(@Param(value = "list")List<DevicePolicy> list);
Mybatis 批量插入主键存在更新注解形式
@Insert("<script> INSERT INTO t_device_policy " + "(id,device_id,type,policy " + "VALUES " + "<foreach collection = 'list' item='list' separator=',' > " + " (#{list.id},#{list.deviceId},#{list.policyType},#{list.policy}) " + "</foreach>" + "ON DUPLICATE KEY " + "UPDATE policy = VALUES(policy)" + "</script>") int insert(@Param(value = "list")List<DevicePolicy> list);
ON DUPLICATE KEY的使用场景大家知道吗?
当你设计的数据库表中的主键存在时更新对应的字段,不存在则插入。
还有一种情况就是你设计的唯一主键存在时更新对应的字段,不存在则插入。
大家可以根据自己的场景看是否需要该字段~
Mybatis 批量更新注解形式
@Insert("<script> INSERT INTO t_device_policy " + "(id,device_id,type,policy " + "VALUES " + "<foreach collection = 'list' item='list' separator=',' > " + " (#{list.id},#{list.deviceId},#{list.policyType},#{list.policy}) " + "</foreach>" + "ON DUPLICATE KEY " + "UPDATE policy = VALUES(policy)" + "</script>") int insert(@Param(value = "list")List<DevicePolicy> list);
Mybatis 批量插入xml形式
<insert id="batchAdd" parameterType="java.util.List"> INSERT INTO t_student(uid,student_id,study_days) VALUES <foreach collection="list" item="item" index="index" separator=","> (#{item.uid},#{item.studentId},#{item.studyDays}) </foreach> </insert>
Mapper中的方法为
void batch(List<StudentPo> po)
Mybatis 批量插入主键更新xml形式
<insert id="batchAdd" parameterType="java.util.List"> INSERT INTO t_student(uid,student_id,study_days) VALUES <foreach collection="list" item="item" index="index" separator=","> (#{item.uid},#{item.studentId},#{item.studyDays}) </foreach> ON DUPLICATE KEY UPDATE update_time = now() </insert>
Mapper中的方法为
void batch(List<StudentPo> po)
总结
以上为Mybatis批量操作经常使用的部分,大家可以根据需要自行提取,如果有什么问题可以留言哈~希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。
相关文章
java stream实现分组BigDecimal求和以及自定义分组求和
这篇文章主要给大家介绍了关于java stream实现分组BigDecimal求和以及自定义分组求和的相关资料,Stream是Java8的一大亮点,是对容器对象功能的增强,它专注于对容器对象进行各种非常便利、高效的聚合操作或者大批量数据操作,需要的朋友可以参考下2023-12-12SpringBoot中@ControllerAdvice注解的使用方法
这篇文章主要介绍了SpringBoot中@ControllerAdvice注解的使用方法,这是一个增强的 Controller,对controller层做异常处理、数据预处理、全局数据绑定, springboot 会自动扫描到,不需要调用,这个注解是spring MVC提供的,在springboot中也可以使用,需要的朋友可以参考下2024-01-01注册中心配置了spring security后客户端启动报错
这篇文章主要为大家介绍了注册中心配置了spring security后客户端启动报错问题解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪2023-07-07推荐一款IntelliJ IDEA提示快捷键的Key Promoter X插件
今天小编就为大家分享一篇关于IntelliJ IDEA提示快捷键的Key Promoter X插件,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2018-10-10
最新评论