Mybatis實(shí)現(xiàn)分頁(yè)的注意點(diǎn)
前面的話(huà):使用攔截器給Mybatis進(jìn)行分頁(yè)的教程在網(wǎng)上有很多,這里記錄的主要是我在使用的時(shí)候中間走的彎路,記錄下來(lái),也好給后面想要學(xué)習(xí)Mybatis分頁(yè)攔截的小伙伴們提供點(diǎn)幫助。
1. 攔截器獲取參數(shù),判斷是否有Page類(lèi)
1) 使用ThreadLocal 獲取
//獲取ThreadLocal
private static ThreadLocal<Page> pageLocal = new ThreadLocal<Page>();
private Page getPage() {
return pageLocal.get();
}
2) 從boundsql里面獲取
BoundSql boundSql = delegate.getBoundSql();
Object parameterObject = boundSql.getParameterObject();
Page page = this.getPage(parameterObject);
private Page getPage(Object parameterObject) {
Page page = null;
if (parameterObject instanceof Page) {
page = (Page) parameterObject;
} else if (parameterObject instanceof Map) {
for (Object val : ((Map<?, ?>) parameterObject).values()) {
if (val instanceof Page) {
page = (Page) val;
}
}
}
return page;
}
2. 重載plugin方法
@Override
public Object plugin(Object target) {
if (target instanceof StatementHandler) {
return Plugin.wrap(target, this);
} else {
return target;
}
}
總結(jié)
以上所述是小編給大家介紹的Mybatis實(shí)現(xiàn)分頁(yè)的注意點(diǎn),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Spring Boot 整合 Druid 并開(kāi)啟監(jiān)控的操作方法
本文介紹了如何在SpringBoot項(xiàng)目中引入和配置Druid數(shù)據(jù)庫(kù)連接池,并開(kāi)啟其監(jiān)控功能,通過(guò)添加依賴(lài)、配置數(shù)據(jù)源、開(kāi)啟監(jiān)控、自定義配置以及訪問(wèn)監(jiān)控頁(yè)面,開(kāi)發(fā)者可以有效提高數(shù)據(jù)庫(kù)訪問(wèn)效率并監(jiān)控連接池狀態(tài),感興趣的朋友跟隨小編一起看看吧2025-01-01
IDEA取消SVN關(guān)聯(lián),再重新分享項(xiàng)目的操作
這篇文章主要介紹了IDEA取消SVN關(guān)聯(lián),再重新分享項(xiàng)目的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02
java計(jì)算機(jī)器人的運(yùn)動(dòng)范圍
這篇文章主要為大家詳細(xì)介紹了java計(jì)算機(jī)器人運(yùn)動(dòng)范圍的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
Java實(shí)現(xiàn)簡(jiǎn)單的遞歸操作方法實(shí)例
這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)簡(jiǎn)單的遞歸操作的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
使用Spring事件監(jiān)聽(tīng)機(jī)制實(shí)現(xiàn)跨模塊調(diào)用的步驟詳解
Spring 事件監(jiān)聽(tīng)機(jī)制是 Spring 框架中用于在應(yīng)用程序的不同組件之間進(jìn)行通信的一種機(jī)制,Spring 事件監(jiān)聽(tīng)機(jī)制基于觀察者設(shè)計(jì)模式,使得應(yīng)用程序的各個(gè)部分可以解耦,提高模塊化和可維護(hù)性,本文給大家介紹了使用Spring事件監(jiān)聽(tīng)機(jī)制實(shí)現(xiàn)跨模塊調(diào)用,需要的朋友可以參考下2024-06-06
Java調(diào)用shell命令涉及管道、重定向時(shí)不生效問(wèn)題及解決
這篇文章主要介紹了Java調(diào)用shell命令涉及管道、重定向時(shí)不生效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12
Springboot上傳文件時(shí)提示405問(wèn)題及排坑過(guò)程
這篇文章主要介紹了Springboot上傳文件時(shí)提示405問(wèn)題及排坑過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
java實(shí)現(xiàn)紙牌游戲之小貓釣魚(yú)算法
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)紙牌游戲之小貓釣魚(yú)算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-01-01

