精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MyBatis Plus 批量數據插入功能,yyds!

數據庫 其他數據庫
本文我們使用 MyBatis-Plus(下文簡稱 MP)自帶的 saveBatch 方法,來實現數據的批量插入功能,咱們本文重點介紹一下 MP 實現批量插入的具體步驟。

[[425955]]

作者 | 王磊

來源 | Java中文社群(ID:javacn666)

轉載請聯系授權(微信ID:GG_Stone

最近 Review 小伙伴代碼的時候,發現了一個小小的問題,小伙伴竟然在 for 循環中進行了 insert (插入)數據庫的操作,這就會導致每次循環時都會進行連接、插入、斷開連接的操作,從而導致一定的性能問題,簡化后代碼如下:

  1. /** 
  2.  * 插入操作 
  3.  */ 
  4. @RequestMapping("/save"
  5. public Object save() { 
  6.     boolean flag = false; // 返回結果 
  7.     // 待添加(用戶)數據 
  8.     for (int i = 0; i < 1000; i++) { 
  9.         User user = new User(); 
  10.         user.setName("test:"+i); 
  11.         user.setPassword("123456"); 
  12.         // 插入數據 
  13.         flag = userService.save(user); 
  14.         if(!flag) break; 
  15.     } 
  16.     return flag; 

這樣做并不會改變程序最終的執行結果,但會對程序的執行效率帶來很大的影響,就好比你現在要從 A 地點送 10 件貨到 B 地點,你可以選擇 1 次送 1 件,送 10 次的方案;也可以選擇 1 次送 10 件,送 1 次的方案,請問你會選擇哪種?這就是多次循環插入和批量一次插入的問題。

  • PS:要插入的數據量越大,批量插入的時間(相比于循環多次插入來說)也越短、其優勢也越大。

批量插入實現方案

本文我們使用 MyBatis-Plus(下文簡稱 MP)自帶的 saveBatch 方法,來實現數據的批量插入功能,因為 MP 不是本文討論的重點,所以這里咱們就不介紹了,如果有不熟悉的朋友可以去他的官方自行惡補:https://baomidou.com/guide/,咱們本文重點介紹一下 MP 實現批量插入的具體步驟。

1.引入 MP 框架

首先,打開您的 pom.xml 文件,在文件中添加以下內容:

  1. <dependency> 
  2.     <groupId>com.baomidou</groupId> 
  3.     <artifactId>mybatis-plus-boot-starter</artifactId> 
  4.     <version>mybatis-plus-latest-version</version> 
  5. </dependency> 

注意:mybatis-plus-latest-version 表示 MP 框架的最新版本號,可訪問 https://mvnrepository.com/artifact/com.baomidou/mybatis-plus-boot-starter 查詢最新版本號,但在使用的時候記得一定要將上面的 “mybatis-plus-latest-version”替換成換成具體的版本號,如 3.4.3 才能正常的引入框架。

2.創建數據庫和表

此步驟可省略,主要用于本文功能的實現,創建數據庫和數據表的腳本如下:

  1. -- ---------------------------- 
  2. -- 創建數據庫 
  3. -- ---------------------------- 
  4. SETNAMES utf8mb4; 
  5. SET FOREIGN_KEY_CHECKS = 0; 
  6. DROPDATABASEIFEXISTS`testdb`; 
  7. CREATEDATABASE`testdb`; 
  8. USE`testdb`; 
  9.  
  10. -- ---------------------------- 
  11. -- 創建 user 表 
  12. -- ---------------------------- 
  13. DROPTABLEIFEXISTS`user`; 
  14. CREATETABLE`user`  ( 
  15.   `id`int(11) NOTNULL AUTO_INCREMENT, 
  16.   `name`varchar(255) CHARACTERSET utf8mb4 COLLATE utf8mb4_bin NULLDEFAULTNULL, 
  17.   `password`varchar(255) CHARACTERSET utf8mb4 COLLATE utf8mb4_bin NULLDEFAULTNULL, 
  18.   `createtime` datetime NULLDEFAULTCURRENT_TIMESTAMP, 
  19.   PRIMARY KEY (`id`) USING BTREE 
  20. ) ENGINE = InnoDB AUTO_INCREMENT = 6CHARACTERSET = utf8mb4 COLLATE = utf8mb4_bin ROW_FORMAT = Dynamic
  21.  
  22. -- ---------------------------- 
  23. -- 添加測試數據 
  24. -- ---------------------------- 
  25. INSERTINTO`user`VALUES (1, '趙云''123456''2021-09-10 18:11:16'); 
  26. INSERTINTO`user`VALUES (2, '張飛''123456''2021-09-10 18:11:28'); 
  27. INSERTINTO`user`VALUES (3, '關羽''123456''2021-09-10 18:11:34'); 
  28. INSERTINTO`user`VALUES (4, '劉備''123456''2021-09-10 18:11:41'); 
  29. INSERTINTO`user`VALUES (5, '曹操''123456''2021-09-10 18:12:02'); 
  30.  
  31. SET FOREIGN_KEY_CHECKS = 1; 

3.具體代碼實現(重點)

① 實體類

先來創建數據庫所對應的 User 實體類:

  1. import lombok.Getter; 
  2. import lombok.Setter; 
  3.  
  4. import java.util.Date
  5.  
  6. @Getter 
  7. @Setter 
  8. publicclass User { 
  9.     privateint id; 
  10.     private String name
  11.     private String password
  12.     private Date createtime; 

② Controller 層代碼

本文的核心是使用 MP 框架中,IService 類提供的 saveBatch 方法,來實現批量數據的插入功能,對應在 Controller 中的實現代碼如下:

  1. import com.example.demo.model.User
  2. import com.example.demo.service.impl.UserServiceImpl; 
  3. import org.springframework.beans.factory.annotation.Autowired; 
  4. import org.springframework.web.bind.annotation.RequestMapping; 
  5. import org.springframework.web.bind.annotation.RestController; 
  6.  
  7. import java.util.ArrayList; 
  8. import java.util.List; 
  9.  
  10. @RestController 
  11. @RequestMapping("/u"
  12. publicclass UserController { 
  13.  
  14.     @Autowired 
  15.     private UserServiceImpl userService; 
  16.  
  17.     /** 
  18.      * MP 批量插入 
  19.      */ 
  20.     @RequestMapping("/savebatch"
  21.     public boolean saveBatch() { 
  22.         List<User> list = new ArrayList<>(); 
  23.         // 待添加(用戶)數據 
  24.         for (int i = 0; i < 1000; i++) { 
  25.             User user = new User(); 
  26.             user.setName("test:"+i); 
  27.             user.setPassword("123456"); 
  28.             list.add(user); 
  29.         } 
  30.         // 批量插入 
  31.         return userService.saveBatch(list); 
  32.     } 

③ Service 層代碼(重點)

接下來,我們要創建一個 UserService 接口,繼承 MP 框架中的 IService 接口,實現代碼如下:

  1. import com.baomidou.mybatisplus.extension.service.IService; 
  2. import com.example.demo.model.User
  3.  
  4. publicinterface UserService extends IService<User> { 
  5.  

然后再創建一個 UserService 的實現類:

  1. import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
  2. import com.example.demo.mapper.UserMapper; 
  3. import com.example.demo.model.User
  4. import com.example.demo.service.UserService; 
  5. import org.springframework.stereotype.Service; 
  6.  
  7. @Service 
  8. publicclass UserServiceImpl extends ServiceImpl<UserMapper,User
  9.         implements UserService { 
  10.  
  • PS:注意 UserServiceImpl 必須要繼承 MP 框架中的 ServiceImpl,不然要重寫很多方法。

④ Mapper 層代碼

Mapper 層的實現相對來說就比較簡單了,只需要創建一個 Mapper 類繼承 MP 框架中的 BaseMapper 類即可,實現代碼如下:

  1. import com.baomidou.mybatisplus.core.mapper.BaseMapper; 
  2. import com.example.demo.model.User
  3. import org.apache.ibatis.annotations.Mapper; 
  4.  
  5. @Mapper 
  6. publicinterface UserMapper extends BaseMapper<User>{ 
  7.  
  • PS:BaseMapper 提供了對某個對象(類)最基礎的 CRUD 操作。

總結

本文我們介紹了 MP(MyBatis Plus)中實現批量插入的具體實現步驟,它的核心是通過調用 MP 中 IService 提供的 saveBatch 方法來完成的,但如果項目中沒有引入 MP 框架該如何處理?是不是使用了 MP 就可以躺平了呢?

不著急,下篇我們再聊批量插入的另一種方式(原生批量插入的實現方式),以及二者之間的優缺點分析。

 

責任編輯:姜華 來源: Java中文社群
相關推薦

2022-09-29 10:06:56

SQLMySQL服務端

2023-06-07 08:00:00

MySQL批量插入

2024-07-31 09:56:20

2024-11-28 19:03:56

2021-10-09 06:59:36

技術MyBatis數據

2023-12-30 20:04:51

MyBatis框架數據

2013-04-01 15:03:58

Android開發Android批量插入

2022-09-23 09:44:17

MyBatisforeach

2025-08-07 03:00:00

2022-12-29 08:49:40

SpringBootExcel

2021-10-18 07:58:33

MyBatis Plu數據庫批量插入

2021-04-08 10:55:53

MySQL數據庫代碼

2024-12-20 16:49:15

MyBatis開發代碼

2011-08-04 18:00:47

SQLite數據庫批量數據

2024-10-22 08:47:03

2021-02-01 00:04:13

Dictionary數據批量

2021-11-19 11:50:48

MyBatisforeachJava

2023-06-07 08:08:37

MybatisSpringBoot

2010-09-03 11:47:38

SQL刪除

2010-09-01 16:26:11

SQL刪除批量
點贊
收藏

51CTO技術棧公眾號

中文字幕av一区二区三区高| 麻豆成人在线| 亚洲国产成人精品久久久国产成人一区| 国产性生活免费视频| 手机看片1024国产| 亚洲视频成人| 久久久精品国产亚洲| 99re久久精品国产| 91精品视频一区二区| 性做久久久久久免费观看| 日韩午夜视频在线观看| 成人av无码一区二区三区| 久久狠狠婷婷| 久久久久久久999| 欧美精品日韩在线| 欧美国产不卡| 91精品欧美福利在线观看| 成人免费在线小视频| 黄色网在线播放| 久久久久久久久久久久久久久99| 69174成人网| 中文字幕一区二区三区波野结 | 亚洲爽爆av| 精品免费在线观看| 看一级黄色录像| 第一视频专区在线| 91亚洲精品一区二区乱码| 成人两性免费视频| 国产免费a视频| 99综合精品| 欧美激情在线播放| 破处女黄色一级片| 91中文字幕精品永久在线| 亚洲视频欧美视频| 国产亚洲色婷婷久久99精品91| 99久久999| 欧美三级蜜桃2在线观看| 116极品美女午夜一级| av2020不卡| 亚洲欧美日韩国产中文在线| 性欧美精品一区二区三区在线播放 | 日韩精品一区二区三区视频播放 | 国产理论片在线观看| 玖玖在线精品| 欧美最顶级的aⅴ艳星| www.av视频在线观看| 日韩久久视频| 国产亚洲日本欧美韩国| 黄色aaa视频| 精品久久网站| 一区二区三区视频在线| 欧美图片第一页| 久久不见久久见免费视频7| 日韩激情在线视频| 91精品人妻一区二区三区| 在线视频亚洲专区| 亚洲欧美国产va在线影院| 成人免费av片| 免费成人高清在线视频theav| 亚洲精品成人久久| 男生裸体视频网站| 精品一区免费| 自拍视频国产精品| 国产精品国产三级国产传播| 亚洲国产成人精品女人| 久久亚洲电影天堂| 欧美成人手机视频| 在线日韩电影| 日韩av成人在线| 日韩欧美一级大片| 国产一区二区三区免费在线观看| 99久热re在线精品996热视频| 好吊色一区二区三区| caoporn国产一区二区| 欧美动漫一区二区| 1024视频在线| 亚洲欧美日韩国产手机在线| 成人黄色大片网站| 欧美日韩精品免费观看视完整| 色视频欧美一区二区三区| 无限资源日本好片| 欧美成人精品午夜一区二区| 欧美精品一区二区高清在线观看| 99久久国产精| 国产精品99在线观看| 欧美激情中文网| 日韩一级片中文字幕| 国内精品写真在线观看| 精品欧美一区二区三区久久久| 青青草娱乐在线| 中文字幕亚洲区| 国产不卡一区二区视频| 3d欧美精品动漫xxxx无尽| 9191国产精品| 亚洲蜜桃精久久久久久久久久久久| 欧美日韩性在线观看| 欧美精品免费看| 天天操天天操天天操天天| 毛片av一区二区| 国产青春久久久国产毛片| 国产美女性感在线观看懂色av| 亚洲蜜臀av乱码久久精品蜜桃| 97国产精东麻豆人妻电影| 欧美一区=区三区| 日韩精品免费观看| 在线免费观看亚洲视频| 日本在线不卡视频| 国产伦精品一区二区三区在线| 成人免费在线电影| 午夜精品一区二区三区电影天堂 | 免费av网址在线| 精品视频一区二区三区| 亚洲天堂网站在线观看视频| 国产精品9191| 国产精品一区专区| 日韩精品资源| 午夜影院一区| 精品国产91亚洲一区二区三区婷婷 | 欧美国产第二页| 亚洲中文无码av在线| www.爱久久.com| 青青草综合在线| 日本免费在线一区| 国产亚洲精品久久久久久牛牛 | 亚洲一区二区三区免费在线观看| 91亚洲va在线va天堂va国| 九色在线播放| 疯狂欧美牲乱大交777| 涩视频在线观看| 中文在线日韩| 成人欧美一区二区三区黑人| 色大18成网站www在线观看| 色婷婷av一区二区| 亚洲一区二区三区无码久久| 伊人激情综合| 国产欧美韩日| 国产后进白嫩翘臀在线观看视频| 欧美一级高清片在线观看| 亚洲精品电影院| 久久精品99久久久| 视频一区国产精品| 欧美va在线观看| 国产一区二区三区视频| 超碰在线免费97| 国产午夜久久久久| av无码精品一区二区三区| 奇米亚洲欧美| 国产91色在线|| a中文在线播放| 欧美性生活久久| 亚洲一级片在线播放| 免费人成网站在线观看欧美高清| 日本精品视频一区| 精品福利在线| 美女福利视频一区| 国产高清免费在线观看| 亚洲午夜久久久久久久久久久| 不许穿内裤随时挨c调教h苏绵| 国内精品久久久久久久97牛牛| 成人免费看片网址| 91九色porn在线资源| 日韩精品极品视频免费观看| 欧美在线观看不卡| 亚洲国产成人私人影院tom| 国产福利在线免费| 欧美精品18| 久久国产精品高清| 成人免费黄色| 欧美日韩aaaa| 亚洲欧美自偷自拍| 欧美午夜精品免费| 精品人妻伦九区久久aaa片| 国产精品99久| 91视频 -- 69xx| 精品日本12videosex| 成人免费看片视频| 国产美女一区视频| 亚洲欧洲一区二区三区在线观看 | 国内精品免费在线观看| 国产亚洲黄色片| 国产欧美日韩| 51国偷自产一区二区三区的来源| 小h片在线观看| www高清在线视频日韩欧美| 全国男人的天堂网| 在线视频欧美精品| 青娱乐91视频| 国产性色一区二区| 精品人妻一区二区免费| 久久国产毛片| 免费日韩在线观看| blacked蜜桃精品一区| 91久久国产自产拍夜夜嗨| 国产精品专区免费| 九九热精品在线| 成年网站在线| 精品国产一区二区三区忘忧草| 看黄色一级大片| 亚洲国产精品久久人人爱| 精品欧美一区二区久久久| 国产精品1区二区.| 亚洲色精品三区二区一区| 好吊日精品视频| 亚洲成人第一| 亚洲三级精品| 99视频免费观看| 欧美v亚洲v综合v国产v仙踪林| 午夜精品久久久久久久久久久久| 免费av在线| 亚洲视频综合网| 蜜臀av在线观看| 欧美一区二区三区免费在线看 | 国产一区二区在线影院| 亚洲国产精品久久久久爰色欲| 午夜日韩视频| 一本—道久久a久久精品蜜桃| 久久av导航| 国产专区一区二区| 一区二区亚洲视频| 国产日韩专区在线| 日韩中文影院| 青青草成人在线| jizzjizz中国精品麻豆| 久久成人人人人精品欧| 1769在线观看| 影音先锋欧美精品| 欧美女v视频| 日韩精品一区二区视频| 成人免费一级视频| 欧美第一区第二区| 精品国自产拍在线观看| 欧美精品乱码久久久久久按摩| 影音先锋国产在线| 在线观看亚洲精品视频| xxxx.国产| 日韩欧美在线播放| 久久青青草视频| 欧美日韩在线免费观看| 国产欧美日韩另类| 欧美日韩午夜视频在线观看| 国产无遮挡aaa片爽爽| 亚洲一区二区三区在线播放| 免费毛片在线播放免费| 亚洲综合无码一区二区| 久久久精品一区二区涩爱| 亚洲一二三四在线| www.国产成人| 狠狠躁夜夜躁人人爽天天天天97| 亚洲天堂一区在线观看| 色综合天天综合| 性高潮视频在线观看| 欧美日韩亚洲国产综合| 91美女精品网站| 欧美一级在线视频| 成人午夜视频一区二区播放| 亚洲精品久久久久久久久久久| 天堂在线视频免费| 亚洲美女在线看| 最近高清中文在线字幕在线观看| 日韩中文字幕免费| 日本一本在线免费福利| 久久男人资源视频| 自拍在线观看| 国产欧美日韩精品丝袜高跟鞋| 欧美一级免费| 国产精华一区二区三区| 午夜精品福利影院| 在线不卡视频一区二区| 欧美在线看片| 浮妇高潮喷白浆视频| 日本aⅴ亚洲精品中文乱码| 欧美特黄aaa| 成人av资源在线| 少妇人妻好深好紧精品无码| 中文字幕在线不卡一区二区三区| 欧美成人精品欧美一级| 色综合视频一区二区三区高清| ,一级淫片a看免费| 欧美不卡在线视频| 日本1级在线| 欧美成人午夜视频| 午夜伦理福利在线| 91精品久久久久久| 欧美成人午夜77777| 天堂一区二区三区| 亚洲高清毛片| 天堂网在线免费观看| 成人高清免费观看| 精品日韩在线视频| 亚洲va国产天堂va久久en| 欧美激情一区二区三区免费观看| 欧美一区二区三区小说| 手机亚洲第一页| 久久国产精品久久久久久久久久| 无码小电影在线观看网站免费| 成人av在线网址| 亚洲欧洲色图| 日韩 欧美 视频| 寂寞少妇一区二区三区| 国产精品无码午夜福利| 亚洲黄色小视频| 日本成人一级片| 亚洲国产97在线精品一区| 日本蜜桃在线观看| 日本在线精品视频| av成人综合| 一区二区视频国产| 久久九九免费| 国产一级免费片| 亚洲日本韩国一区| 无码久久精品国产亚洲av影片| 欧美精品一区视频| av免费在线网站| 国产精品中文在线| 欧美人与拘性视交免费看| 欧美成人高潮一二区在线看| 国产精品一区久久久久| 99热99这里只有精品| 色欧美乱欧美15图片| 手机在线不卡av| 欧美国产精品日韩| 国产精品亚洲一区二区在线观看| 色一情一乱一伦一区二区三区| 国产欧美精品| 水蜜桃av无码| 亚洲电影一区二区| 亚洲高清视频网站| 久久色免费在线视频| 欧洲亚洲精品| 亚洲精品一区二区三| 日韩影院在线观看| 在线免费观看麻豆| 91福利国产成人精品照片| 国产又爽又黄网站亚洲视频123| 久久人人爽国产| 风间由美性色一区二区三区四区| 丁香色欲久久久久久综合网| 国产精品影视天天线| 欧美日韩精品亚洲精品| 制服丝袜亚洲精品中文字幕| 免费在线观看黄色| 国产美女精品免费电影| 国产精品久久久乱弄| 91看片破解版| 日韩毛片在线免费观看| 97人妻精品一区二区三区软件| 精品国内亚洲在观看18黄 | 黑人中文字幕一区二区三区| 亚洲电影av| www.免费av| 在线一区二区三区| av在线电影免费观看| 国产欧美va欧美va香蕉在线| 99tv成人| 国产免费无码一区二区| 亚洲成年人网站在线观看| 欧美美女搞黄| 国产精品偷伦免费视频观看的| 91久久夜色精品国产按摩| 欧美一级小视频| 亚洲午夜在线电影| 偷拍精品一区二区三区| 国产高清在线不卡| 国产精品久久久久蜜臀| 欧美日韩一区二区区| 午夜精品福利一区二区三区蜜桃| 三区在线观看| 国产欧美一区二区三区视频| 国产综合自拍| 熟女俱乐部一区二区| 欧美精品国产精品| 男女视频在线| 日本午夜精品电影| 国产一区二区0| 久久99精品波多结衣一区| 在线观看久久av| 亚洲午夜精品| 成年人网站大全| 亚洲免费在线观看视频| 无码h黄肉3d动漫在线观看| 国产精品扒开腿爽爽爽视频| 午夜精品久久| 色无极影院亚洲| 欧美一区午夜视频在线观看| 色偷偷色偷偷色偷偷在线视频| 亚洲欧美日韩在线综合 | 精品一区国产| 久久精品理论片| 日本一级一片免费视频| 色偷偷av一区二区三区| 日韩av影院| 亚洲精品mv在线观看| 色婷婷久久久综合中文字幕 | 五月婷婷六月丁香| 国产在线观看一区二区三区| 国产欧美日韩综合一区在线播放| 手机av在线看| 亚洲丝袜一区在线| 国产日韩三级| 超碰在线免费av|