使用MyBatis-Plus兵器棧開發集合

2020-10-25 Java功夫

使用MyBatis-Plus兵器棧開發集合

一、技術預研

MyBatis-Plus是一款優秀的MyBatis增加工具,特色有集成了Lambda表達式,簡化了SQL開發,而且具有強大的代碼生成工具。在進行單表操作時,MyBatis-Plus完全不需要寫一行sql代碼,就能實現增刪改查的全部功能,是一款不可多得的工具。提供了like、in、group by、where、and、or、desc、order by等所有操作,非常強大,與Spring Boot的完美整合更是廣大程式設計師的福音。而且支持分頁插件,幾乎支持市面上所有的流行資料庫以及國產資料庫。

1.1 支持資料庫

  • mysql 、 mariadb 、 oracle 、 db2 、 h2 、 hsql 、 sqlite 、 postgresql 、 sqlserver
  • 達夢資料庫 、 虛谷資料庫 、 人大金倉資料庫

二、簡單實例

現有一張 User 表,其表結構如下:



其對應的資料庫 Schema 腳本如下:



2.導入相應的依賴



說明:我們使用mybatis-plus可以節省我們大量的代碼,儘量不要同時導入mybatis和mybatis-plus!

3.連接資料庫



4.編寫代碼

使用mybatis-plus之後。只需要pojo、dao接口、及其他接口

編寫實體類 User.java(此處使用了 Lombok 簡化代碼)



編寫Mapper類 UserMapper.java



在 Spring Boot 啟動類中添加 @MapperScan 註解,掃描 Mapper 文件夾:



添加測試類,進行功能測試:



控制臺輸出:



5.小結

通過以上幾個簡單的步驟,我們就實現了 User 表的 CRUD 功能,甚至連 XML 文件都不用編寫!


從以上步驟中,我們可以看到集成MyBatis-Plus非常的簡單,只需要引入 starter 工程,並配置 mapper 掃描路徑即可。


但 MyBatis-Plus 的強大遠不止這些功能,想要詳細了解 MyBatis-Plus 的強大功能?那就繼續往下看吧!

三、配置日誌

我們所用的sql現在是不可見的,我們希望知道他是怎麼執行的,所以我們必須要查看日誌!



這樣就能查看到日誌文件



四、CRUD擴展

Insert 插入



參數說明



舉例測試



資料庫插入的id為全局默認的id(ID_WORKER)

主鍵生成策略

(1)分布式系統唯一id生成


(2)雪花算法

我們需要配置主鍵自增


1、實體類欄位上 @TableId(type =IdType.AUTO)



2、資料庫欄位一定要是自增的

4.1更新操作



參數說明



舉例測試



創建時間、修改時間!這些個操作一遍都是自動化完成,我們不希望手動更新!

面試中經常會問到樂觀鎖,悲觀鎖


樂觀鎖:顧名思義十分樂觀,它總是被認為不會出現問題,無論幹什麼都不去上鎖!如果出現了問題,再次更新測試


悲觀鎖:顧名思義十分悲觀,它總是出現問題,無論幹什麼都會上鎖!再去操作!

樂觀鎖實現方式

  • 取出記錄是,獲取當前version
  • 更新時,帶上這個version
  • 執行更新事,set version=newVersion where version =oldVersion
  • 如果version不對,就更新失敗



1、表中創建樂觀鎖欄位version 默認值為1



2、同步實體類



3、註冊組件 (config包下)



特別說明:


支持的數據類型只有:int,Integer,long,Long,Date,Timestamp,LocalDateTime

整數類型下 newVersion = oldVersion + 1

newVersion 會回寫到 entity 中

僅支持 updateById(id) 與 update(entity, wrapper) 方法

在 update(entity, wrapper) 方法下, wrapper 不能復用!!!

測試一下



4.2查詢操作



參數說明



實例測試



分頁查詢

分頁在網站使用的十分多

1、原始的limit進行分頁

2、pageHelper 第三方插件

3、Mybatis-Plus中也內置了分頁插件!

1、配置攔截器組件即可



2、寫測試



4.3刪除



#參數說明




五、條件構造器

十分重要:Wrapper


我們寫一些複雜的sql可以用它來完成


現做幾個實例看看:




六、代碼自動生成器

dao、pojo、conrtroller、service自動生成


AutoGenerator 是 MyBatis-Plus 的代碼生成器,通過 AutoGenerator 可以快速生成 Entity、 Mapper、Mapper XML、Service、Controller 等各個模塊的代碼,極大的提升了開發效率。





七、總結

使用MyBatis-Plus兵器棧真的極大地豐富了我們的開發

相關焦點

  • mybatis升級為mybatis-plus踩到的坑
    RuoYi-Vue 是一個 Java EE 企業級快速開發平臺,基於經典技術組合(Spring Boot、Spring Security、mybatis、Jwt、Vue),內置模塊如:部門管理、角色用戶、菜單及按鈕授權、數據權限、系統參數、日誌管理、代碼生成等。
  • mybatis-plus思維導圖,讓mybatis-plus不再難懂
    MyBatis 可以使用簡單的 XML 或註解來配置和映射原生信息,將接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java對象)映射成資料庫中的記錄。但mybatis有個讓我比較頭疼的一個問題是sql工作量很大,尤其是欄位多的時候。
  • mybatis plus 與mybatis的選擇
    mybatis plus是mybatis的封裝,可以做到簡化xml的效果,完全去除xml化,實現orm層的分離,mybatis雖然是hrbernate後的另一大框架,同時其xml的配置也隨著去xml配置時代的而成為阻礙敏捷開發的標準.隨著mybatis plus的出現,orm的框架又將有一次提升
  • 詳解mybatis和Mybatis-Plus區別
    於是有下面的↓Mybatis Generator:自動為Mybatis生成簡單的增刪改查sql語句的工具,省去一大票時間,兩者配合使用,開發速度快到飛起。我們在使用Mybatis-Plus之後既可以使用Mybatis-Plus的特有功能,又能夠正常使用Mybatis的原生功能。Mybatis-Plus(以下簡稱MP)是為簡化開發、提高開發效率而生,但它也提供了一些很有意思的插件,比如SQL性能監控、樂觀鎖、執行分析等。
  • 開發工具:Mybatis.Plus.插件三種方式的逆向工程
    一、逆向工程簡介在Java開發中,持久層最常用的框架就是mybatis,該框架需要編寫sql語句,mybatis官方提供逆向工程,可以把數據表自動生成執行所需要的基礎代碼,例如:mapper接口,sql映射文件,pojo實體類等,避免基礎代碼維護的繁雜過程。
  • 「SpringBoot」廿六、SpringBoot中整合MyBatis-Plus
    於是 MyBatis-Plus 應運而生,作為 MyBatis 的增強工具,更是為我們開發效率得到了質的飛躍。MP)是一個 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。
  • MyBatis-Plus為啥這麼牛?
    ,能快速揪出慢查詢內置全局攔截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規則,預防誤操作正文在實際項目開發中,我們常常有把數據批量保存到資料庫的需求,大家或多或少的用mybatis-plus
  • MyBatis Plus 為啥這麼牛
    正文在實際項目開發中,我們常常有把數據批量保存到資料庫的需求,大家還是多或少的用mybatis-plus實現過吧?>組件依賴首先我們要通過Maven♡mybatis-plus--mybatis--><dependency>    <groupId>com.baomidou</groupId>    <artifactId>mybatis-plus-boot-starter</artifactId>   
  • MyBatis Plus 為啥這麼牛?
    在實際項目開發中,我們常常有把數據批量保存到資料庫的需求,大家還是多或少的用mybatis-plus實現過吧?組件依賴首先我們要通過Maven mybatis-plus開源組件,在pom.xml文件中加入以下代碼:<!
  • 給你的MyBatis-Plus裝上批量插入的翅膀
    mybatis-plus實現過吧?組件依賴首先我們要通過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系列之代碼生成器
    看到很多小夥伴在為資料庫生成實體類發愁,現分享給大家,提高開發效率。mybatis-plus-code-generator 工程介紹工程地址:mybatis-plus-code-generator:https://github.com/fengwenyi/mybatis-plus-code-generator目錄結構:
  • SpringBoot集成mybatis-plus
    這篇文章介紹SpringBoot集成Mybatis-Plus,同時介紹使用easyCode通過指定的資料庫表生成對應的bean、mapper.xml、mapper.java、service.java、serviceImpl.java和controller。
  • spring-boot-plus 1.0.0 發布,後臺快速開發框架
    spring-boot-plus 是一套集成 spring boot 常用開發組件的後臺快速開發框架Purpose
  • Mybatis-plus常用API全套教程,看完沒有不懂的
    創建資料庫資料庫名為mybatis_plus創建表創建user表DROP TABLE IF EXISTS-- mybatis-plus --><!-- mybatis-plus 是自己開發,並非官方的!
  • mybatis-plus 2.1.8 發布,代號:囍
    mybatis-plus 是一款 mybatis 動態 SQL 自動注入 mybatis 增刪改查 CRUD 操作中間件。
  • MyBatis 最好的搭檔:MyBatis-Plus
    尊敬的讀者,記得加關注、點讚、點評喲,您的認可是我最大的動力,謝謝MyBatis-Plus(簡稱 MP)是一個 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變,為簡化開發、提高效率而生。願景我們的願景是成為 MyBatis 最好的搭檔,就像 魂鬥羅 中的 1P、2P,基友搭配,效率翻倍。
  • mybatis-plus 2.1.9 發布,代號:懷念
    mybatis-plus 是一款 mybatis 動態 SQL 自動注入 mybatis 增刪改查 CRUD 操作中間件。讓 mybatis 擁有 hibernate 的單表高效,也保留 xml sql 的靈動, 減少你的開發周期優化動態維護 xml 實體欄位,您再也不要羨慕不需要糾結是選擇 hibernate 還是 jpa 呢?請記住還有 MP 2018 不容錯過。
  • 使用mybatis-plus必須掌握的基本技能,自定義SQL和分頁查詢
    1 創建項目先創建一個集成了mybatis-plus的spring boot項目。參考小編的另一篇文章【基於Spring Boot整合mybatis-plus完整詳細版經驗分享一】。2 自定義SQLMybatis-plus自帶的條件構造器雖然很強大,在項目實戰的時候,各種複雜的應用場景,你肯定避免不了要寫稍微複雜一點的sql語句,又或者一些朋友習慣通過寫sql來操作數據,那麼小編來說說mybatis-puls是怎麼自定義sql語句。
  • mybatis 分頁插件 mybatis-plus-page
    mybatis-plus-page 詳細介紹mybatis分頁插件MicroPageInterceptor 特點:1, 支持mysql和oracle分頁2, 不必在xml編寫統計count的sql3, 使用RowBounds子類PageInfo
  • 用mybatis-plus不會使用樂觀鎖,處理重要數據容易出錯
    1 沒有鎖的風險開發不設鎖,就像沒穿褲衩。當海水退去,程序的漏洞就會被一覽無遺。現在沒出問題,只是因為還有海水為你遮擋了老闆們的視線。聽小編給你講個朋友的故事:一件商品,成本價是80元,售價是100元。老闆先是通知小李,說你去把商品價格增加50元。小李正在玩遊戲,耽擱了一個小時。正好一個小時後,老闆覺得商品價格增加到150元,價格太高,可能會影響銷量。