Pagehelper分頁插件的使用

概述:

? ? ? ?Pagehelper:是中國(guó)的開源的mybatis分頁插件,通過該插件可以非常簡(jiǎn)單的實(shí)現(xiàn)分頁功能;

步驟(maven方式):

? ? 1)、引入PageHelper jar包坐標(biāo);

? ? 代碼截圖:

PageHelper jar包引入

? ? 2)、在SqlSessionFactoryBean中配置PageHelper的分頁插件;

? ? ? ? ? ? 注:該插件的位置是固定的不能隨意更改;

? ? 代碼截圖:

配置PageHelper插件

? ? ? ? 說明:

? ? ? ? ? ? ? PageInterceptor實(shí)例中的參數(shù),可以設(shè)置多個(gè),具體參數(shù)以及參數(shù)介紹如下:

? ? ? ? ? ? ? ? 參數(shù):

? ? ? ? ? ? ? ? ? ????helperDialect=mysql

     ????reasonable=true

   ????  supportMethodsArguments=true

     ????params=count=countSql

     ????utoRuntimeDialect=true

? ? ? ? ? ? ? ? ?參數(shù)說明:

? ? ? ? ? ? ? 1)、? helperDialect:分頁插件會(huì)自動(dòng)檢測(cè)當(dāng)前的數(shù)據(jù)庫(kù)鏈接,自動(dòng)選擇合適的分頁方式。 你可以配置helperDialect屬性來指定分頁插件使用哪種方言。配置時(shí),可以使用下面的縮寫值: ? ?

????????oracle,mysql,mariadb,sqlite,hsqldb,postgresql,db2,sqlserver,informix,h2,sqlserver2012,derby?

? ? ? ? 特別注意:使用 SqlServer2012 數(shù)據(jù)庫(kù)時(shí),需要手動(dòng)指定為sqlserver2012,否則會(huì)使用 SqlServer2005 的方式進(jìn)行分頁。

? ? ?????你也可以實(shí)現(xiàn)AbstractHelperDialect,然后配置該屬性為實(shí)現(xiàn)類的全限定名稱即可使用自定義的實(shí)現(xiàn)方法。

? ? ? ? ? ? ? ?2)、offsetAsPageNum:默認(rèn)值為false,該參數(shù)對(duì)使用RowBounds作為分頁參數(shù)時(shí)有效。 當(dāng)該參數(shù)設(shè)置為true時(shí),會(huì)將RowBounds中的offset參數(shù)當(dāng)成pageNum使用,可以用頁碼和頁面大小兩個(gè)參數(shù)進(jìn)行分頁。

? ? ? ? ? ? ? ?3)、rowBoundsWithCount:默認(rèn)值為false,該參數(shù)對(duì)使用RowBounds作為分頁參數(shù)時(shí)有效。 當(dāng)該參數(shù)設(shè)置為true時(shí),使用RowBounds分頁會(huì)進(jìn)行 count 查詢。

? ? ? ? ? ? ? ?4)、pageSizeZero:默認(rèn)值為false,當(dāng)該參數(shù)設(shè)置為true時(shí),如果pageSize=0或者RowBounds.limit = 0就會(huì)查詢出全部的結(jié)果(相當(dāng)于沒有執(zhí)行分頁查詢,但是返回結(jié)果仍然是Page類型)。

? ? ? ? ? ? ? ?5)、reasonable:分頁合理化參數(shù),默認(rèn)值為false。當(dāng)該參數(shù)設(shè)置為true時(shí),pageNum<=0時(shí)會(huì)查詢第一頁,pageNum>pages(超過總數(shù)時(shí)),會(huì)查詢最后一頁。默認(rèn)false時(shí),直接根據(jù)參數(shù)進(jìn)行查詢。

? ? ? ? ? ? ? ?6)、params:為了支持startPage(Object params)方法,增加了該參數(shù)來配置參數(shù)映射,用于從對(duì)象中根據(jù)屬性名取值, 可以配置pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射的用默認(rèn)值, 默認(rèn)值為:pageNum=pageNum;pageSize=pageSize;count=countSql;reasonable=reasonable;pageSizeZero=pageSizeZero。

? ? ? ? ? ? ? ?7)、supportMethodsArguments:支持通過 Mapper 接口參數(shù)來傳遞分頁參數(shù),默認(rèn)值false,分頁插件會(huì)從查詢方法的參數(shù)值中,自動(dòng)根據(jù)上面params配置的字段中取值,查找到合適的值時(shí)就會(huì)自動(dòng)分頁。 使用方法可以參考測(cè)試代碼中的com.github.pagehelper.test.basic包下的ArgumentsMapTest和ArgumentsObjTest。

? ? ? ? ? ? ? ?8)、autoRuntimeDialect:默認(rèn)值為false。設(shè)置為true時(shí),允許在運(yùn)行時(shí)根據(jù)多數(shù)據(jù)源自動(dòng)識(shí)別對(duì)應(yīng)方言的分頁 (不支持自動(dòng)選擇sqlserver2012,只能使用sqlserver)。

? ? ? ? ? ? ? ?9)、closeConn:默認(rèn)值為true。當(dāng)使用運(yùn)行時(shí)動(dòng)態(tài)數(shù)據(jù)源或沒有設(shè)置helperDialect屬性自動(dòng)獲取數(shù)據(jù)庫(kù)類型時(shí),會(huì)自動(dòng)獲取一個(gè)數(shù)據(jù)庫(kù)連接, 通過該屬性來設(shè)置是否關(guān)閉獲取的這個(gè)連接,默認(rèn)true關(guān)閉,設(shè)置為false后,不會(huì)關(guān)閉獲取的連接,這個(gè)參數(shù)的設(shè)置要根據(jù)自己選擇的數(shù)據(jù)源來決定。

?3)、編寫業(yè)務(wù)層代碼(設(shè)置分頁所必須的參數(shù));

? ? ? ? ? ? 我們只需要向PageHelper所提供的實(shí)例中傳入分頁所必須獲取的參數(shù)(當(dāng)前頁索引、每頁展示的數(shù)據(jù)量)即可;

? ? ? ? ? ? 代碼截圖:

設(shè)置分頁所必須的參數(shù)

? ?4)、編寫Controller層代碼(將分頁展示的數(shù)據(jù)傳入PageHelper所提供的分頁對(duì)象中);

? ? ? ? ? ? ? ?說明:由于前臺(tái)分頁展示所需要的數(shù)據(jù)較多,所以PageHelper提供了一個(gè)類來存取分頁展示所需要的信息;

? ? ? ? 代碼截圖:

將分頁展示的數(shù)據(jù)封裝到分頁對(duì)象中

效果演示(最終結(jié)果):

? ? 代碼截圖:

效果演示

?使用:有了最終結(jié)果,將該分頁對(duì)象存儲(chǔ)到request域中,視圖層通過el表達(dá)式即可完成分頁;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容