日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MyBatisPlus中自定义全局操作流程

發布時間:2025/3/19 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatisPlus中自定义全局操作流程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

項目搭建專欄:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/37194

什么是自定義全局操作

根據MybatisPlus的AutoSqlInjector可以自定義各種你想要的sql注入到全局中。相當于

定義MyBatisPlus自動注入的方法。

之前需要在xml中進行配置的sql語句,現在通過擴展AutoSqlInjector在加載mybatis環境時就注入。

實現

1.在Mapper接口中定義相關的方法

package com.badao.mapper;import com.badao.beans.Employee; import com.baomidou.mybatisplus.mapper.BaseMapper;/**** 泛型指定就是當前mapper接口所操作的實體類類型* @author Administrator* @Description:* @Time:2019年4月18日 下午8:36:59*/public interface EmployeeMapper extends BaseMapper<Employee> {/*** 自定義注入方法*/int deleteAll();}


2.擴展AutoSqlInjector的inject方法

項目下新建injector包,包下新建MySqlInjector

代碼:

package com.badao.injector;import org.apache.ibatis.builder.MapperBuilderAssistant; import org.apache.ibatis.mapping.SqlSource; import org.apache.ibatis.session.Configuration;import com.baomidou.mybatisplus.entity.TableInfo; import com.baomidou.mybatisplus.mapper.AutoSqlInjector;/**** 自定義全局操作* @author Administrator* @Description:* @Time:2019年4月27日 下午12:18:42*/ public class MySqlInjector extends AutoSqlInjector {/**** 擴展inject方法,完成自定義全局操作*/@Overridepublic void inject(Configuration configuration, MapperBuilderAssistant builderAssistant, Class<?> mapperClass,Class<?> modelClass, TableInfo table) {// 將EmployeeMapper中定義的deleteAll,處理成對應的MappedStatement對象,加入到configuration對象中/* 執行 SQL ,動態 SQL 參考類 SqlMethod */String sql = "delete from " + table.getTableName();/* mapper 接口方法名一致 */String method = "deleteAll";//構建SqlSource對象SqlSource sqlSource = languageDriver.createSqlSource(configuration, sql, modelClass);//構造一個刪除的MapperedStastementthis.addDeleteMappedStatement(mapperClass, method, sqlSource);}}

3.在MP的全局策略配置中,配置自定義注入器

定義自定義注入器

打開項目的applicationContext.xml

<!-- 定義自定義注入器 --> <bean id="mySqlInjector" class="com.badao.injector.MySqlInjector"></bean>

注入自定義全局操作

找到MP的全局策略配置的地方。

<!-- 定義MybatisPlus的全局策略配置--><bean id ="globalConfiguration" class="com.baomidou.mybatisplus.entity.GlobalConfiguration"><!-- 在2.3版本以后,dbColumnUnderline 默認值就是true 開啟下劃線到駝峰命名支持--><property name="dbColumnUnderline" value="true"></property><!-- 全局的主鍵策略?? 全局使用主鍵自增的方式? value為 0--><property name="idType" value="0"></property><!-- 全局的表前綴策略配置 --><!-- <property name="tablePrefix" value="tbl_"></property> --><!-- 注入自定義全局操作 --><property name="sqlInjector" ref="mySqlInjector"></property></bean>

4.進行測試

編寫測試方法

/****? 自定義全局配置*/@Testpublic void testdeleteAll() {int result = employeeMapper.deleteAll();System.out.println("一共刪除了"+result);}

進行測試 前要注意是否注冊性能分析插件,如果使用了則不能刪除全表。

MyBatisPlus插件擴展_SqlExplainInterceptor執行分析插件的使用:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/89599695

運行測試

源碼下載

https://download.csdn.net/download/badao_liumang_qizhi/11147754

總結

以上是生活随笔為你收集整理的MyBatisPlus中自定义全局操作流程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。