Mybatis實(shí)現(xiàn)分頁的注意點(diǎn)
前面的話:使用攔截器給Mybatis進(jìn)行分頁的教程在網(wǎng)上有很多,這里記錄的主要是我在使用的時(shí)候中間走的彎路,記錄下來,也好給后面想要學(xué)習(xí)Mybatis分頁攔截的小伙伴們提供點(diǎn)幫助。
1. 攔截器獲取參數(shù),判斷是否有Page類
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)分頁的注意點(diǎn),希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
一文解決System.in關(guān)閉后無法再繼續(xù)使用流的問題
這篇文章主要給大家介紹如何解決System.in關(guān)閉后無法再繼續(xù)使用流的問題,文中有詳細(xì)的解決方法和代碼示例,具有一定的參考價(jià)值,需要的朋友可以參考下2023-07-07SpringBoot項(xiàng)目配置明文密碼泄露問題的處理方式
這篇文章主要介紹了SpringBoot項(xiàng)目配置明文密碼泄露問題的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06劍指Offer之Java算法習(xí)題精講字符串操作與數(shù)組及二叉搜索樹
跟著思路走,之后從簡單題入手,反復(fù)去看,做過之后可能會(huì)忘記,之后再做一次,記不住就反復(fù)做,反復(fù)尋求思路和規(guī)律,慢慢積累就會(huì)發(fā)現(xiàn)質(zhì)的變化2022-03-03