Part1:MybatisPlus是什麼
MyBatis-Plus (opens new window)(簡稱 MP)是一個 MyBatis (opens new window)的增強工具,在 MyBatis 的基礎上隻做增強不做改變,為簡化開發、提高效率而生。
Part2:MybatisPlus架構結構
(下圖來源于官網)
Part3:MybatisPlus可以做什麼
即使你沒有使用或學習過 Mybatis,也沒關系。這不會妨礙你對 MybatisPlus 的學習,使用過後你會感受到它的強大之處,它幫我們簡化了很多代碼的邏輯。
以下是我使用 MybatisPlus 過程中發現的一些強大特性。
1.自動填充功能
實作元對象處理器接口:com.baomidou.mybatisplus.core.handlers.MetaObjectHandler,這樣我們就可以對指定字段進行填充入庫。
2.分頁插件
在配置類裡面用 Bean 來注入一個方法傳回 PaginationInterceptor這個類對象。這樣就可以非常容易的實作分頁功能。
3.樂觀鎖插件
在配置類裡面用 Bean 來注入一個方法傳回 OptimisticLockerInterceptor 這個類對象。這樣我們就可以解決丢失更新的問題。
4.邏輯删除插件
在配置類裡面用 Bean 來注入一個方法傳回 ISqlInjector 這個類對象。這樣我們就可以實作邏輯删除的邏輯。
5.執行性能分析插件
在配置類裡面用 Bean 來注入一個方法傳回 PerformanceInterceptor這個類對象。這樣我們可以通過設定參數:maxTime,sql 執行最大時長,超過自動停止運作,有助于發現問題。
6.複雜條件查詢
通過建立 QueryWrapper 類對象,可以去建構我們想要的不同查詢條件的組合,快速的實作各種複雜查詢條件的生成。
Part4:示例代碼
以下是代碼結構示意圖:
Step1: User表的字段資料及實體類定義的代碼字段及資料
實體類代碼
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiMGc902byZ2PxQWMldjZzIWYhFWYjN2N5EmM1QjMmZ2MjJjZwADO2E2LcBza5QTcsJja2FXLp1ibj1ycvR3Lc5Wanlmcv9CXt92YucWbp9WYpRXdvRnL5A3Lc9CX6MHc0RHaiojIsJye.jpg)
Step2: 配置類
@EnableTransactionManagement
@Configuration
@MapperScan("com.test.mpdemo0112.mapper")//在 Spring Boot 啟動類中添加 @MapperScan 注解,掃描 Mapper 檔案夾
public class MybatisPlusConfig {
//樂觀鎖插件
@Bean
public OptimisticLockerInterceptor optimisticLockerInterceptor(){
return new OptimisticLockerInterceptor();
}
//分頁插件
@Bean
public PaginationInterceptor paginationInterceptor(){
return new PaginationInterceptor();
}
//邏輯删除插件
@Bean
public ISqlInjector iSqlInjector(){
return new LogicSqlInjector();
}
//SQL 執行性能分析插件
//(1)參數說明
//參數:maxTime:SQL 執行最大時長,超過自動停止運作,有助于發現問題。
//參數:format:SQL是否格式化,預設false
@Bean
@Profile({"test","dev"})
public PerformanceInterceptor performanceInterceptor(){
PerformanceInterceptor performanceInterceptor = new PerformanceInterceptor();
performanceInterceptor.setMaxTime(500);//ms,超過此處設定的ms則sql不執行
performanceInterceptor.setFormat(true);
return performanceInterceptor;
}
}
Step3: 中繼資料對象處理類
Step4: UserMapper繼承BaseMapper後擷取的mp超能力
Step5: main入口代碼
Step6: 配置檔案的設定
application.properties裡面指定了使用哪個環境的配置檔案。
Step7: 測試類