日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

太火了!MyBatis Plus 为啥这么牛?

發(fā)布時(shí)間:2025/3/20 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 太火了!MyBatis Plus 为啥这么牛? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
點(diǎn)擊上方?好好學(xué)java?,選擇?星標(biāo)?公眾號 重磅資訊,干貨,第一時(shí)間送達(dá) 今日推薦:分享一套基于SpringBoot和Vue的企業(yè)級中后臺開源項(xiàng)目,這個(gè)項(xiàng)目有點(diǎn)哇塞!個(gè)人原創(chuàng)100W +訪問量博客:點(diǎn)擊前往,查看更多

來源:cnblogs.com/thinkYi/p/13723035.html

  • 特色

  • 正文

    • 組件依賴

    • 擴(kuò)展代碼


大家有用過MyBatis-Plus(簡稱MP)的都知道它是一個(gè) MyBatis 的增強(qiáng)工具,致力于 MyBatis 的基礎(chǔ)上只做增強(qiáng)不做改變,為簡化開發(fā),提高效率而生。

特色

  • 無侵入:只做增強(qiáng)不做改變,約會它不會對現(xiàn)有工程產(chǎn)生影響,如絲般順滑

  • 損耗小:啟動即會自動注入基本CURD,性能基本無損耗,直接面向?qū)ο蟛僮?/p>

  • 強(qiáng)大的CRUD操作:內(nèi)置通用Mapper,通用服務(wù),僅通過少量配置即可實(shí)現(xiàn)單表大部分CRUD操作,足以強(qiáng)大的條件構(gòu)造器,滿足各種使用需求

  • 支持Lambda形式調(diào)用:通過Lambda表達(dá)式,方便的編寫分類查詢條件,無需再擔(dān)心替換寫錯(cuò)

  • 支持主鍵自動生成:支持多達(dá)4種主鍵策略(內(nèi)部含分布式唯一ID生成器-序列),可自由配置,完美解決主鍵問題

  • 支持ActiveRecord模式:支持ActiveRecord形式調(diào)用,實(shí)體類只需繼承Model類即可進(jìn)行強(qiáng)大的CRUD操作

  • 支持自定義通用通用操作:支持通用通用方法注入(寫一次,可在任何地方使用)

  • 內(nèi)置代碼生成器:采用代碼或Maven插件可快速生成Mapper,Model,Service,Controller層代碼,支持模板引擎,甚至超多自定義配置等您來使用

  • 內(nèi)置分頁插件:基于MyBatis物理分頁,開發(fā)者無需關(guān)心特定操作,配置好插件之后,寫分頁等同于普通列表查詢

  • 分頁插件支持多種數(shù)據(jù)庫:支持MySQL,MariaDB,Oracle,DB2,H2,HSQL,SQLite,Postgre,SQLServer等多種數(shù)據(jù)庫

  • 內(nèi)置性能分析插件:可輸出Sql語句以及其執(zhí)行時(shí)間,建議開發(fā)測試時(shí)啟用該功能,能快速揪出慢查詢

  • 內(nèi)置的攔截插件:提供全表delete,update操作智能分析中斷,也可自定義攔截規(guī)則,預(yù)防誤操作

正文

在實(shí)際項(xiàng)目開發(fā)中,我們常常有把數(shù)據(jù)批量保存到數(shù)據(jù)庫的需求,大家還是多或少的用mybatis-plus實(shí)現(xiàn)過吧?

組件依賴

首先我們要通過Maven mybatis-plus開源組件,在pom.xml文件中加入以下代碼:

<!--mybatis--> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</version> </dependency> <!--mybatis?plus?extension,包含了mybatis?plus?core--> <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-extension</artifactId><version>3.4.0</version> </dependency>

通過查看原始碼發(fā)現(xiàn)API接口提供的批量插入的接口:

啟動服務(wù)后,用Postman調(diào)試,后臺打印如下:

從圖上可以拋光這個(gè)所謂的批量插入接口,其實(shí)就是一個(gè)用于循環(huán)插入,哦,我的天!

難不成要手工實(shí)現(xiàn),這樣,

INSERT?INTO?test?(a,?b,?c)?VALUES <foreach?collection="list"?item="item"?separator=",">(#{item.a},?#{item.b},?#{item.c}) </foreach>

我們閱讀mybatis-plus的源碼,在com.baomidou.mybatisplus.extension.injector.methods.InsertBatchSomeColumn包中其實(shí)是有很多插入代碼實(shí)現(xiàn)的,這里我就不貼標(biāo)簽了,大家自行跟蹤一下。我們來手工擴(kuò)展一下:

擴(kuò)展代碼

說話便宜,給我看看代碼。先展示代碼。再帶大家慢慢解釋為什么這樣實(shí)現(xiàn):

在MybatisPlusConfig文件中注入該Bean,代碼如下:

@Configuration public?class?MybatisPlusConfig?{/***?分頁插件**?@return?PaginationInterceptor*/@Beanpublic?PaginationInterceptor?paginationInterceptor()?{return?new?PaginationInterceptor();}@Beanpublic?EasySqlInjector?easySqlInjector()?{return?new?EasySqlInjector();} }

還要擴(kuò)展一下自帶的BaseMapper,代碼如下:

import?com.baomidou.mybatisplus.core.mapper.BaseMapper;import?java.util.Collection;/***?擴(kuò)展通用?Mapper,支持?jǐn)?shù)據(jù)批量插入**?@author?天開易想*/ public?interface?EasyBaseMapper<T>?extends?BaseMapper<T>?{/***?批量插入?僅適用于mysql**?@param?entityList?實(shí)體列表*?@return?影響行數(shù)*/Integer?insertBatchSomeColumn(Collection<T>?entityList); }

我們即可在業(yè)務(wù)類中,實(shí)現(xiàn)以下的引用了,代碼如下:

/***?定義業(yè)務(wù)mapper接口,繼承剛剛擴(kuò)展的EasyBaseMapper**?@author?天開易想*/ @Mapper public?interface?TestMapper?extends?EasyBaseMapper<Test>?{ }/***?業(yè)務(wù)實(shí)現(xiàn)類接口,即可引用**?@author?天開易想*/ @Service public?class?TestServiceImpl?extends?ServiceImpl<TestMapper,?Test>?implements?TestService?{@Overridepublic?Integer?testBatch(Collection<Test>?testList)?{return?baseMapper.insertBatchSomeColumn(testList);}

因?yàn)樵贐aseMapper中是不能拿來直接引用的,為什么不能直接引用,所謂的只是支持 MySql 數(shù)據(jù)庫,所以作者沒有內(nèi)置的原因吧!

到這里,我們的批量插入功能就大功告成!

推薦文章今天給大家推薦6個(gè)Spring Boot項(xiàng)目,拿來就可以賺錢! 分享一套基于SpringBoot和Vue的企業(yè)級中后臺開源項(xiàng)目,這個(gè)項(xiàng)目有點(diǎn)哇塞! 圈子哥推薦一種基于Spring Boot開發(fā)OA開源產(chǎn)品,學(xué)習(xí)/搞外快都是不二選擇! 硬剛一周,3W字總結(jié),一年的經(jīng)驗(yàn)告訴你如何準(zhǔn)備校招! 原創(chuàng)電子書歷時(shí)整整一年總結(jié)的?Java面試+ Java入門技術(shù)學(xué)習(xí)指南,這是本人這幾年及校招的總結(jié),各種異步面試題已經(jīng)全部進(jìn)行總結(jié),按照章節(jié)復(fù)習(xí)即可,已經(jīng)拿到了了大廠提供。原創(chuàng)思維導(dǎo)圖掃碼或者微信搜?程序員的技術(shù)圈子?回復(fù)?面試?領(lǐng)取原創(chuàng)電子書和思維導(dǎo)圖。

總結(jié)

以上是生活随笔為你收集整理的太火了!MyBatis Plus 为啥这么牛?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。