天天看點

輕松掌握mybatis擴充點

作者:輕松入門網

MyBatis提供4個擴充點:

1、Executor執行器接口擴充點

用于執行一系列的SQL操作,底層是使用StatementHandler接口進行原子的SQL操作,Executor在StatementHandler之上進行了一層包裝,比如ReuseExecutor執行器,在上層包裝了對Statement的緩存,這樣達到一個性能提升的作用

輕松掌握mybatis擴充點

2、StatementHandler擴充點

Statement接口是Java執行資料庫行為的重要接口,Mybatis的StatementHandler的實作,也正是對應Statement接口三個實作類(CallableStatement\PreparedStatement\Statement),實作類都是mysql驅動包裡的。

是以,StatementHandler是直接調用mysql驅動包實作對資料庫的增删改查操作,

輕松掌握mybatis擴充點

3、ResultSetHandler擴充點

用于處理SQL的傳回結果

4、ParameterHandler擴充點

用于設定參數

5、擴充點原理

以上所有擴充點的方式都是通過InterceptorChain來設定的,底層使用的jdk動态代理

輕松掌握mybatis擴充點

所有需要代理的類,通過調用pluginAll方法,傳入被代理的目标類對象,通過循環所有的interceptors攔截器

輕松掌握mybatis擴充點
輕松掌握mybatis擴充點

調用了wrap方法,該方法建立了代理對象Plugin類

輕松掌握mybatis擴充點

是以代理類建立之後,所有的情況都會通過inovke方法, invoke方法則調用interceptor進行業務邏輯處理。

6、擴充執行個體

1、分頁插件pagehelper

分頁插件的實作原理,即是根據攔截Executor執行器,實作了Interceptor接口,在interceptor方法中寫分頁的業務邏輯

輕松掌握mybatis擴充點

繼續閱讀