MyBatis-Plus?(opens new window)(簡稱 MP)是一個?MyBatis?(opens new window)的增強工具,在 MyBatis 的基礎(chǔ)上只做增強不做改變,為簡化開發(fā)、提高效率而生。
特性
無侵入:只做增強不做改變,引入它不會對現(xiàn)有工程產(chǎn)生影響,如絲般順滑
損耗小:啟動即會自動注入基本 CURD,性能基本無損耗,直接面向?qū)ο蟛僮?/p>
強大的 CRUD 操作:內(nèi)置通用 Mapper、通用 Service,僅僅通過少量配置即可實現(xiàn)單表大部分 CRUD 操作,更有強大的條件構(gòu)造器,滿足各類使用需求
支持 Lambda 形式調(diào)用:通過 Lambda 表達式,方便的編寫各類查詢條件,無需再擔心字段寫錯
支持主鍵自動生成:支持多達 4 種主鍵策略(內(nèi)含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解決主鍵問題
支持 ActiveRecord 模式:支持 ActiveRecord 形式調(diào)用,實體類只需繼承 Model 類即可進行強大的 CRUD 操作
支持自定義全局通用操作:支持全局通用方法注入( Write once, use anywhere )
內(nèi)置代碼生成器:采用代碼或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 層代碼,支持模板引擎,更有超多自定義配置等您來使用
內(nèi)置分頁插件:基于 MyBatis 物理分頁,開發(fā)者無需關(guān)心具體操作,配置好插件之后,寫分頁等同于普通 List 查詢
分頁插件支持多種數(shù)據(jù)庫:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多種數(shù)據(jù)庫
內(nèi)置性能分析插件:可輸出 Sql 語句以及其執(zhí)行時間,建議開發(fā)測試時啟用該功能,能快速揪出慢查詢
內(nèi)置全局攔截插件:提供全表 delete 、 update 操作智能分析阻斷,也可自定義攔截規(guī)則,預防誤操作
一. 使用步驟
1.創(chuàng)建數(shù)據(jù)庫表

2.pom.xml導入依賴

3.application.properties配置數(shù)據(jù)庫

4.創(chuàng)建實體類

5.創(chuàng)建Mapper類,繼承自BaseMapper,里面實現(xiàn)了基礎(chǔ)的增刪改查,我們可以直接使用,而不用自己再寫mapper.xml文件.注解@Repository表示持久層。

6.在主啟動類中加入MapperScan注解

7.在測試類中測試增刪改查

快速運行成功!
二. 配置日志
由于省去了編寫mapper.xml,我們不用再寫sql語句,但是可以通過日志在控制臺輸出執(zhí)行的sql語句。在application.properties中配置log即可實現(xiàn)。


三. 插入數(shù)據(jù)保證ID唯一
使用雪花算法生成唯一ID。

四.自動填充
數(shù)據(jù)庫表中的字段create_time,update_time


五. 樂觀鎖
并發(fā)控制,保證數(shù)據(jù)準確。一般是在數(shù)據(jù)表中加上一個數(shù)據(jù)版本號?version?字段,表示數(shù)據(jù)被修改的次數(shù)。當數(shù)據(jù)被修改時,version?值會+1。當線程A要更新數(shù)據(jù)值時,在讀取數(shù)據(jù)的同時也會讀取?version?值,在提交更新時,若剛才讀取到的?version?值與當前數(shù)據(jù)庫中的?version?值相等時才更新,否則重試更新操作,直到更新成功。


六.分頁查詢
配置攔截器組件

直接使用Page對象

七.刪除操作

邏輯刪除和物理刪除
1.邏輯刪除: 在數(shù)據(jù)庫中沒有消失,只是用一個變量讓數(shù)據(jù)時效?
2.物理刪除 :從數(shù)據(jù)庫中直接移除

配置

直接測試刪除,然后查看數(shù)據(jù)庫中是否還存在
八. 條件構(gòu)造器



