什麼是Mybatis-Plus
最近幾個項目都用的是Mybatis-Plus,所以想總結一下,畢竟好記性不如爛筆頭,也算是再給自己增強一遍。
Mybatis-Plus用官方的話說:是一個 MyBatis 的增強工具,在 MyBatis 的基礎上只做增強不做改變,爲簡化開發、提高效率而生。
對於我自己的話:Mybatis-Plus是一種工具,讓我對大部分的單表操作,不用再去Mapper.xml中寫枯燥的查詢,不用在去一個一個的複製粘貼實體類的屬性和表的字段一一對應,而是直接在業務層調用其裏面封裝好的方法,基本的CRUD(增、查、改、刪)早已給你做好了映射,省去了我大量的時間。
Mybatis-Plus的特性
出自官方網站:Mybatis-Plus的特性
- 無侵入:只做增強不做改變,引入它不會對現有工程產生影響,如絲般順滑
- 損耗小:啓動即會自動注入基本 CURD,性能基本無損耗,直接面向對象操作
- 強大的 CRUD 操作:內置通用 Mapper、通用 Service,僅僅通過少量配置即可實現單表大部分 CRUD 操作,更有強大的條件構造器,滿足各類使用需求
- 支持 Lambda 形式調用:通過 Lambda 表達式,方便的編寫各類查詢條件,無需再擔心字段寫錯
- 支持主鍵自動生成:支持多達 4 種主鍵策略(內含分佈式唯一 ID 生成器 Sequence),可自由配置,完美解決主鍵問題
- 支持 ActiveRecord 模式:支持 ActiveRecord 形式調用,實體類只需繼承 Model 類即可進行強大的 CRUD 操作
- 支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere )
- 內置代碼生成器:採用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來使用
- 內置分頁插件:基於 MyBatis 物理分頁,開發者無需關心具體操作,配置好插件之後,寫分頁等同於普通 List 查詢
- 分頁插件支持多種數據庫:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer2005、SQLServer 等多種數據庫
- 內置性能分析插件:可輸出 Sql 語句以及其執行時間,建議開發測試時啓用該功能,能快速揪出慢查詢
- 內置全局攔截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規則,預防誤操作
Mybatis-Plus的環境搭建
注:本次環境的搭建是基於Spring Boot
Mybatis-Plus的依賴
有兩種:
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.2</version>
</dependency>
和
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus</artifactId>
<version>3.1.2</version>
</dependency>
對於mybatis-plus-boot-starter是針對於Spring Boot環境,mybatis-plus是針對於Spring MVC環境。
引入 MyBatis-Plus 之後請不要再次引入 MyBatis 以及 MyBatis-Spring,以避免因版本差異導致的問題。