mybatis 自定義外掛
mybatis外掛擴充套件機制
我們可以基於mybatis外掛機制實現分頁、分表、監控等功能,mybatis四大元件包括Executor、StatementHandler、ParameterHandler、ResultSetHandler,他們提供了簡單易用的外掛擴充套件機制。
外掛擴充套件需兩步:
- 1、實現Interceptor
/**
* 通過Intercepts和Signature兩個註解,定義外掛攔截哪個核心物件裡的哪個方法
*/
@Intercepts({
@Signature(type = StatementHandler.class, method = "prepare", args = {Connection.class, Integer.class})
})
public class MyPlugin implements Interceptor {
@Override
public Object intercept(Invocation invocation) throws Throwable {
System.out.println("---------增強邏輯-------------");
return invocation.proceed();
}
/**
* 把當前攔截器生成代理加入到攔截器鏈
*
* @param target
* @return
*/
@Override
public Object plugin(Object target) {
return Plugin.wrap(target, this);
}
@Override
public void setProperties(Properties properties) {
System.out.println("-------------獲取配置檔案-------------");
}
}
- 2、修改核心配置檔案
<plugins>
<plugin interceptor="com.plugin.MySqlPagingPlugin">
<!--配置引數-->
<property name="name" value="Bob"/>
</plugin>
</plugins>
自定義分頁外掛
MyBatis可以使用第三方的外掛來對功能進行擴充套件,只需匯入相關包,修改配置檔案即可
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.0</version>
</dependency>
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>3.2</version>
</dependency>
<!--注意:分頁助手的外掛配置在通用館mapper之前*-->*
<plugin interceptor="com.github.pagehelper.PageHelper">
<!—指定方言 —>
<property name="dialect" value="mysql"/>
</plugin>
相關文章
- 淺析MyBatis(三):聊一聊MyBatis的實用外掛與自定義外掛MyBatis
- gradle自定義外掛Gradle
- 自定義Mybatis-plus外掛(限制最大查詢數量)MyBatis
- vue自定義全域性元件(或自定義外掛)Vue元件
- Springboot+Mybatis+Mybatisplus 框架中增加自定義分頁外掛和sql 佔位符修改外掛Spring BootMyBatis框架SQL
- 自定義Gradle-Plugin 外掛GradlePlugin
- apisix~自定義外掛的部署API
- es 自定義分詞外掛分詞
- Cordova學習--iOS自定義外掛iOS
- 【django學習-24】自定義外掛Django
- gradle自定義任務和外掛Gradle
- Kube-Scheduler外掛的自定義
- APISIX Ingress 如何支援自定義外掛API
- MyBatis外掛MyBatis
- 快速自定義Cordova外掛(-配置檔案)
- apisix-dashboard上新增自定義外掛API
- 二 阿里大模型接入:自定義外掛阿里大模型
- mybaits原始碼分析--自定義外掛(七)AI原始碼
- [-Flutter外掛篇 1-] 從自定義外掛開始說起Flutter
- [外掛擴充套件]onethink自定義欄位外掛 百度地圖定位 外掛套件地圖
- svelte元件:Svelte3自定義Navbar+Tabbr元件|svelte自定義外掛元件
- iOS持續整合(三)——fastlane 自定義外掛iOSAST
- Higress 基於自定義外掛訪問 RedisRedis
- Java整合系列:高效構建自定義外掛Java
- Apache Maven Assembly自定義打包外掛的使用ApacheMaven
- JMeter自定義取樣器外掛開發JMeter
- [外掛擴充套件]自定義表單外掛【2015-02-28更新】套件
- 使用Mybatis自定義外掛實現不侵入業務的公共引數自動追加MyBatis
- mybatis generator外掛系列--分頁外掛MyBatis
- mybatis plus 啟用 mybatis外掛MyBatis
- ##自定義一個自動注入Log 的 外掛
- Qt自定義外掛plugin的開發和呼叫QTPlugin
- IDEA Web渲染外掛開發(二)— 自定義JsDialogIdeaWebJS
- Custom Post Types [2.1.14] - WordPress高階自定義外掛
- mybatis的外掛:mapperMyBatisAPP
- Mybatis外掛開發MyBatis
- MyBatis外掛 - 通用mapperMyBatisAPP
- 自己動手編寫一個Mybatis外掛:Mybatis脫敏外掛MyBatis