分頁(yè)助手,PageHelper

PageHelper是國(guó)內(nèi)非常優(yōu)秀的一款開(kāi)源的mybatis分頁(yè)插件傻唾,它支持基本主流與常用的數(shù)據(jù)庫(kù)投慈,例如mysql、oracle冠骄、mariaDB伪煤、DB2、SQLite凛辣、Hsqldb等抱既。

本項(xiàng)目在 github 的項(xiàng)目地址:https://github.com/pagehelper/Mybatis-PageHelper

本項(xiàng)目在 gitosc 的項(xiàng)目地址:http://git.oschina.net/free/Mybatis_PageHelper

使用方法:

如上圖,首先maven導(dǎo)入相關(guān)依賴


其次使用 spring 的屬性配置方式扁誓,可以使用 plugins 屬性像下面這樣配置:



PageHelper.startPage 靜態(tài)方法調(diào)用(重點(diǎn))

在需要進(jìn)行分頁(yè)的 MyBatis 查詢方法前調(diào)用PageHelper.startPage 靜態(tài)方法即可防泵,緊跟在這個(gè)方法后的第一個(gè)MyBatis 查詢方法會(huì)被進(jìn)行分頁(yè)。


實(shí)例中的分頁(yè)查詢:

service:


controller:


分頁(yè)插件參數(shù)介紹

1. helperDialect :分頁(yè)插件會(huì)自動(dòng)檢測(cè)當(dāng)前的數(shù)據(jù)庫(kù)鏈接蝗敢,自動(dòng)選擇合適的分頁(yè)方式捷泞。 你可以配置helperDialect 屬性來(lái)指定分頁(yè)插件使用哪種方言。配置時(shí)寿谴,可以使用下面的縮寫(xiě)值:oracle , mysql , mariadb , sqlite , hsqldb , postgresql , db2 , sqlserver , informix , h2 , sqlserver2012 , derby特別注意:使用 SqlServer2012 數(shù)據(jù)庫(kù)時(shí)锁右,需要手動(dòng)指定為 sqlserver2012 ,否則會(huì)使用 SqlServer2005 的方式進(jìn)行分頁(yè)拭卿。你也可以實(shí)現(xiàn) AbstractHelperDialect 骡湖,然后配置該屬性為實(shí)現(xiàn)類(lèi)的全限定名稱即可使用自定義的實(shí)現(xiàn)方法。

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

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

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

5. reasonable :分頁(yè)合理化參數(shù)续膳,默認(rèn)值為 false 改艇。當(dāng)該參數(shù)設(shè)置為 true 時(shí), pageNum<=0 時(shí)會(huì)查詢第一頁(yè)坟岔, pageNum>pages (超過(guò)總數(shù)時(shí))谒兄,會(huì)查詢最后一頁(yè)。默認(rèn) false 時(shí)社付,直接根據(jù)參數(shù)進(jìn)行查詢承疲。

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

7. supportMethodsArguments :支持通過(guò) Mapper 接口參數(shù)來(lái)傳遞分頁(yè)參數(shù),默認(rèn)值 false 熙兔,分頁(yè)插件會(huì)從查詢方法的參數(shù)值中,自動(dòng)根據(jù)上面 params 配置的字段中取值艾恼,查找到合適的值時(shí)就會(huì)自動(dòng)分頁(yè)住涉。 使用方法可以參考測(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)方言的分頁(yè) (不支持自動(dòng)選擇 sqlserver2012 ,只能使用 sqlserver )柳爽,用法和注意事項(xiàng)參考下面的場(chǎng)景五媳握。

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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末幻枉,一起剝皮案震驚了整個(gè)濱河市碰声,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌熬甫,老刑警劉巖胰挑,帶你破解...
    沈念sama閱讀 219,110評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異椿肩,居然都是意外死亡洽腺,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,443評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)覆旱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)蘸朋,“玉大人,你說(shuō)我怎么就攤上這事扣唱∨号鳎” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,474評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵噪沙,是天一觀的道長(zhǎng)炼彪。 經(jīng)常有香客問(wèn)我,道長(zhǎng)正歼,這世上最難降的妖魔是什么辐马? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,881評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮局义,結(jié)果婚禮上喜爷,老公的妹妹穿的比我還像新娘。我一直安慰自己萄唇,他們只是感情好檩帐,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,902評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著另萤,像睡著了一般湃密。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上四敞,一...
    開(kāi)封第一講書(shū)人閱讀 51,698評(píng)論 1 305
  • 那天泛源,我揣著相機(jī)與錄音,去河邊找鬼忿危。 笑死达箍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的癌蚁。 我是一名探鬼主播幻梯,決...
    沈念sama閱讀 40,418評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼兜畸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了碘梢?” 一聲冷哼從身側(cè)響起咬摇,我...
    開(kāi)封第一講書(shū)人閱讀 39,332評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎煞躬,沒(méi)想到半個(gè)月后肛鹏,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,796評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恩沛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,968評(píng)論 3 337
  • 正文 我和宋清朗相戀三年在扰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雷客。...
    茶點(diǎn)故事閱讀 40,110評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡芒珠,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搅裙,到底是詐尸還是另有隱情皱卓,我是刑警寧澤,帶...
    沈念sama閱讀 35,792評(píng)論 5 346
  • 正文 年R本政府宣布部逮,位于F島的核電站娜汁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏兄朋。R本人自食惡果不足惜掐禁,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,455評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望颅和。 院中可真熱鬧傅事,春花似錦、人聲如沸融虽。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,003評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)有额。三九已至,卻和暖如春彼绷,著一層夾襖步出監(jiān)牢的瞬間巍佑,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,130評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工寄悯, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留萤衰,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,348評(píng)論 3 373
  • 正文 我出身青樓猜旬,卻偏偏與公主長(zhǎng)得像脆栋,于是被迫代替她去往敵國(guó)和親倦卖。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,047評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容