上個星期,師長髮布過一篇實名diss!說說爲何老外不肯意用MyBatis?你們紛紛表示怎麼讓MyBatis 更好用(在不換成jpa的前提下),那麼今天,師長給使用 MyBatis 的同窗推薦一款神器:MyBatis-Plus,簡稱 MP,它是一個 MyBatis 的加強工具,在 MyBatis 的基礎上只作加強不作改變,爲簡化開發、提升效率而生。git
願景就是成爲 MyBatis 最好的搭檔,男女搭配,幹活不累!github
官網地址:數據庫
https://mybatis.plus/bash
Github地址:mybatis
https://github.com/baomidou/mybatis-plusapp
如今已經超過 5K+ Star 了。。框架
無侵入:只作加強不作改變,引入它不會對現有工程產生影響,如絲般順滑分佈式
損耗小:啓動即會自動注入基本 CURD,性能基本無損耗,直接面向對象操做工具
強大的 CRUD 操做:內置通用 Mapper、通用 Service,僅僅經過少許配置便可實現單表大部分 CRUD 操做,更有強大的條件構造器性能
支持 Lambda 形式調用:經過 Lambda 表達式,方便的編寫各種查詢條件,無需再擔憂字段寫錯
支持多種數據庫:支持 MySQL、MariaDB、Oracle、DB二、H二、HSQL、SQLite、Postgre、SQLServer200五、SQLServer 等多種數據庫
支持主鍵自動生成:支持多達 4 種主鍵策略(內含分佈式惟一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問題
支持 XML 熱加載:Mapper 對應的 XML 支持熱加載,對於簡單的 CRUD 操做,甚至能夠無 XML 啓動
支持 ActiveRecord 模式:支持 ActiveRecord 形式調用,實體類只需繼承 Model 類便可進行強大的 CRUD 操做
支持自定義全局通用操做:支持全局通用方法注入( Write once, use anywhere )
支持關鍵詞自動轉義:支持數據庫關鍵詞(order、key……)自動轉義,還可自定義關鍵詞
內置代碼生成器:採用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,有超多自定義配置等
內置分頁插件:基於 MyBatis 物理分頁,開發者無需關心具體操做,配置好插件以後,寫分頁等同於普通 List 查詢
內置性能分析插件:可輸出 Sql 語句以及其執行時間,建議開發測試時啓用該功能,能快速揪出慢查詢
內置全局攔截插件:提供全表 delete 、 update 操做智能分析阻斷,也可自定義攔截規則,預防誤操做
內置 Sql 注入剝離器:支持 Sql 注入剝離,有效預防 Sql 注入攻擊
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.1.1</version>
</dependency>
複製代碼
public interface UserMapper extends BaseMapper<User> {
}
複製代碼
List<User> userList = userMapper.selectList(
new QueryWrapper<User>()
.lambda()
.ge(User::getAge, 18)
);
複製代碼
MyBatis-Plus將會生成如下查詢SQL:
SELECT * FROM user WHERE age >= 18
複製代碼
這只是一個簡單的示例,你們喜歡的能夠去研究下,如今有用到的也能夠留言分享下心得。