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的使用場景大家知道嗎?
當你設計的數(shù)據(jù)庫表中的主鍵存在時更新對應的字段,不存在則插入。
還有一種情況就是你設計的唯一主鍵存在時更新對應的字段,不存在則插入。
大家可以根據(jù)自己的場景看是否需要該字段~
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批量操作經(jīng)常使用的部分,大家可以根據(jù)需要自行提取,如果有什么問題可以留言哈~希望本文的內(nèi)容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。
相關文章
java?stream實現(xiàn)分組BigDecimal求和以及自定義分組求和
這篇文章主要給大家介紹了關于java?stream實現(xiàn)分組BigDecimal求和以及自定義分組求和的相關資料,Stream是Java8的一大亮點,是對容器對象功能的增強,它專注于對容器對象進行各種非常便利、高效的聚合操作或者大批量數(shù)據(jù)操作,需要的朋友可以參考下2023-12-12
SpringBoot中@ControllerAdvice注解的使用方法
這篇文章主要介紹了SpringBoot中@ControllerAdvice注解的使用方法,這是一個增強的?Controller,對controller層做異常處理、數(shù)據(jù)預處理、全局數(shù)據(jù)綁定,?springboot?會自動掃描到,不需要調(diào)用,這個注解是spring?MVC提供的,在springboot中也可以使用,需要的朋友可以參考下2024-01-01
注冊中心配置了spring?security后客戶端啟動報錯
這篇文章主要為大家介紹了注冊中心配置了spring?security后客戶端啟動報錯問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07
推薦一款IntelliJ IDEA提示快捷鍵的Key Promoter X插件
今天小編就為大家分享一篇關于IntelliJ IDEA提示快捷鍵的Key Promoter X插件,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-10-10
Java批量向PDF文件中添加圖像水印實現(xiàn)細節(jié)
這篇文章主要為大家介紹了Java批量向PDF文件中添加圖像水印實現(xiàn)細節(jié),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05

