接下來我們看一下具體實現的步驟:
第一步:建立一個分頁數據保存的基類BwfPagingBean。
省略了getter、setter
第二步:把User bean修改為繼承自BwfPagingBean。
第三步:添加mapper分頁查詢語句。
第四步:添加分頁查詢接口方法。
第五步:實現攔截器。
1.新建BwfPagingInterceptor實現Interceptor接口
2.給BwfPagingInterceptor添加注解
@Intercepts({
@Signature(type = StatementHandler.class, method ="prepare", args = {Connection.class,Integer.class})
})
含義:攔截StatementHandler類的prepare方法,其參數有兩個,分別是Connection.class,Integer.class。也就是在sql執行預編譯前,對sql進行分頁修改。
3.重寫plugin方法
直接調用Plugin類的wrap對目標對象進行代理封裝。
4.重寫intercept方法
在該方法中,對查詢的方法名進行了鑒別,只有包含ByPaging字樣的函數才會進行分頁攔截,否則直接通過,不進行分頁。
第5步和第6步兩個方法的定義如下:
第六步:在配置文件中添加攔截器配置
第七步:測試
測試結果略,大家可以實際操作下。