欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mybatis 插入和刪除批處理操作

 更新時(shí)間:2016年12月05日 11:38:56   投稿:mrr  
在操作數(shù)據(jù)庫時(shí),經(jīng)常會碰到批量插入、批量刪除的情況,直接執(zhí)行SQL語句還好做一點(diǎn),當(dāng)使用Mybatis進(jìn)行批量插入、批量刪除時(shí)會有一些問題。下面對使用Mybatis批量插入,批量刪除進(jìn)行介紹

在操作數(shù)據(jù)庫時(shí),經(jīng)常會碰到批量插入、批量刪除的情況,直接執(zhí)行SQL語句還好做一點(diǎn),當(dāng)使用Mybatis進(jìn)行批量插入、批量刪除時(shí)會有一些問題。下面對使用Mybatis批量插入,批量刪除進(jìn)行介紹。

1. 批量插入

Java代碼:

// Model: Test.java
@Data
public class Test {
private String x;
private String y;
private String z;
}
// Mapper: TestMapper.java
public void insertTestList(List<Test> testList);

XML代碼

<!-- XML: TestMapper.XML -->
...
<!-- 忽略重復(fù)數(shù)據(jù) -->
<insert id="insertTestList" parameterType="Test">
INSERT IGNORE INTO 
test_table(test_x, test_y, test_z)
VALUES
<foreach item="item" index="index" collection="list" open="(" close=")" separator=",">
#{item}.x, #{item.y}, #{item}.z
</foreach>
</insert>
<!-- 更新重復(fù)數(shù)據(jù) -->
<insert id="insertTestList" parameterType="Test">
INSERT INTO 
test_table(test_x, test_y, test_z)
VALUES
<foreach item="item" index="index" collection="list" open="(" close=")" separator=",">
#{item}.x, #{item.y}, #{item}.z
</foreach>
ON DUPLICATE KEY UPDATE
test_x = VALUES(test_x),
test_y = VALUES(test_y),
test_z = VALUES(test_z)
</insert>
...

批量插入SQL語句

insert into test_table(x, y, z) values (1, 1, 1), (2, 2, 2), (3, 3, 3)

備注:VALUE()是Mysql的一個(gè)函數(shù),具體解釋可以查看文檔function_values。

主要功能就是在數(shù)據(jù)重復(fù)時(shí)可以獲取要更新的值。

2. 批量刪除

Java代碼:

// Model: Test.java
@Data
public class Test {
private String x;
private String y;
private String z;
}
// Mapper: TestMapper.java
public void deleteTestList(List<Test> testList);

XML代碼

<!-- XML: TestMapper.XML -->
...
<delete id="deleteTestList" parameterType="Test">
DELETE FROM 
test_table
WHERE
<foreach item="item" index="index" collection="list" open="(" close=")" separator="OR">
test_x = #{item.x} AND test_y = #{item.y} AND test_z = #{item.z}
</foreach>
</delete>
...

SQL語句

delete from test_table where (test_x = 1 AND test_y = 1 AND test_z = 1) or (test_x = 2 AND test_y = 2 AND test_z = 2) or (test_x = 3 AND test_y = 3 AND test_z = 3)

備注:上面的代碼為x,y,z為聯(lián)合主鍵的情況,普通情況使用where id in。

以上所述是小編給大家介紹的Mybatis 插入和刪除批處理操作,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Spring注解方式無法掃描Service注解的解決

    Spring注解方式無法掃描Service注解的解決

    這篇文章主要介紹了Spring注解方式無法掃描Service注解的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringBoot讀取配置文件常用方法解析

    SpringBoot讀取配置文件常用方法解析

    這篇文章主要介紹了SpringBoot讀取配置文件常用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringSecurity實(shí)現(xiàn)權(quán)限認(rèn)證與授權(quán)的使用示例

    SpringSecurity實(shí)現(xiàn)權(quán)限認(rèn)證與授權(quán)的使用示例

    本文主要介紹了SpringSecurity實(shí)現(xiàn)權(quán)限認(rèn)證與授權(quán)的使用示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-11-11
  • java基礎(chǔ)的詳細(xì)了解第六天

    java基礎(chǔ)的詳細(xì)了解第六天

    這篇文章對Java編程語言的基礎(chǔ)知識作了一個(gè)較為全面的匯總,在這里給大家分享一下。需要的朋友可以參考,希望能給你帶來幫助
    2021-08-08
  • 使用@SpringBootTest注解進(jìn)行單元測試

    使用@SpringBootTest注解進(jìn)行單元測試

    這篇文章主要介紹了使用@SpringBootTest注解進(jìn)行單元測試,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • SpringBoot前后端接口對接常見錯(cuò)誤小結(jié)

    SpringBoot前后端接口對接常見錯(cuò)誤小結(jié)

    SpringBoot前后端接口對接工作時(shí),經(jīng)常遇到請求500,400等問題,本文主要介紹了SpringBoot前后端接口對接常見錯(cuò)誤小結(jié),感興趣的可以了解一下
    2022-01-01
  • springcloud gateway網(wǎng)關(guān)服務(wù)啟動(dòng)報(bào)錯(cuò)的解決

    springcloud gateway網(wǎng)關(guān)服務(wù)啟動(dòng)報(bào)錯(cuò)的解決

    這篇文章主要介紹了springcloud gateway網(wǎng)關(guān)服務(wù)啟動(dòng)報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • 詳解在java中進(jìn)行日期時(shí)間比較的4種方法

    詳解在java中進(jìn)行日期時(shí)間比較的4種方法

    這篇文章主要介紹了詳解在java中進(jìn)行日期時(shí)間比較的4種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Java判斷2個(gè)List集合是否相等(不考慮元素的順序)

    Java判斷2個(gè)List集合是否相等(不考慮元素的順序)

    今天小編就為大家分享一篇關(guān)于Java判斷2個(gè)List集合是否相等(不考慮元素的順序)的文章,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Java List的remove()方法踩坑

    Java List的remove()方法踩坑

    Java的List在刪除元素時(shí),一般會用list.remove(o)/remove(i)方法。在使用時(shí),容易觸碰陷阱,本文就來介紹一下容易踩的坑,感興趣的可以了解一下
    2021-10-10

最新評論