Mybatis框架如何使用分頁插件呢?

分頁插件使用的方式

修改 pom 文件,添加分頁 jar 包依賴?

修改 mybatis.xml 文件

UserDao 接口,UserMapper.xml 添加對應(yīng)方法與實(shí)現(xiàn) sql

對應(yīng) UserService 接口添加分頁查詢方法

測試分頁效果

案例實(shí)操

1.修改 pom 文件,添加分頁 jar 包依賴

<dependency>

?

? ? <groupId>com.github.pagehelper</groupId>

?

? ? <artifactId>pagehelper</artifactId>

?

? ? <version>4.1.0</version>

?

</dependency>

2.修改 mybatis.xml 文件

<plugins>

?

<!-- com.github.pagehelper 為 PageHelper 類所在包名 -->

?

<plugininterceptor="com.github.pagehelper.PageHelper">

?

<propertyname="dialect"value="mysql"/>

?

<!-- 該參數(shù)默認(rèn)為 false -->

?

<!-- 設(shè)置為 true 時,會將 RowBounds 第一個參數(shù) offset 當(dāng)成 pageNum 頁碼使用

?

-->

?

<!-- 和 startPage 中的 pageNum 效果一樣 -->

?

<propertyname="offsetAsPageNum"value="true"/>

?

<!-- 該參數(shù)默認(rèn)為 false -->

?

<!-- 設(shè)置為 true 時,使用 RowBounds 分頁會進(jìn)行 count 查詢 -->

?

<propertyname="rowBoundsWithCount"value="true"/>

?

<!-- 設(shè)置為 true 時,如果 pageSize=0 或者 RowBounds.limit = 0 就會查詢出全

?

部的結(jié)果 -->

?

<!-- (相當(dāng)于沒有執(zhí)行分頁查詢,但是返回結(jié)果仍然是 Page 類型) -->

?

<propertyname="pageSizeZero"value="true"/>

?

<!-- 3.3.0 版本可用 - 分頁參數(shù)合理化,默認(rèn) false 禁用 -->

?

<!-- 啟用合理化時,如果 pageNum<1 會查詢第一頁,如果 pageNum>pages 會查詢

?

最后一頁 -->

?

<!-- 禁用合理化時,如果 pageNum<1 或 pageNum>pages 會返回空數(shù)據(jù) -->

?

<propertyname="reasonable"value="true"/>

?

<!-- 3.5.0 版本可用 - 為了支持 startPage(Object params)方法 -->

?

<!-- 增加了一個`params`參數(shù)來配置參數(shù)映射,用于從 Map 或 ServletRequest

?

中取值 -->

?

<!-- 可以配置 pageNum,pageSize,count,pageSizeZero,reasonable,不配置映射

?

的用默認(rèn)值 -->

?

<propertyname="params"

?

value="pageNum=start;pageSize=limit;pageSizeZero=zero;reasonable=heli;count=cou

?

ntsql"/>

?

</plugin>

?

</plugins>

3.UserDao 接口,UserMapper.xml 添加對應(yīng)方法與實(shí)現(xiàn) sql

UserDao 接口:

publicinterfaceUserDao{

?

publicUserqueryUserById(intid);

?

? ? publicList<User>queryUsers();

?

}

UserMapper.xml

<?xmlversion="1.0" encoding="UTF-8" ?>

?

<!DOCTYPE mapper

?

PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"

?

"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

?

<mappernamespace="com.mage.dao.UserDao">

?

<selectid="queryUserById"parameterType="int"resultType="user">

?

? ? select id,userName,userPwd from user where id=#{id}

?

</select>

?

<selectid="queryUsers"resultType="user">

?

? ? select id,userName,userPwd from user

?

</select>

?

</mapper>

4.對應(yīng) UserService 接口添加分頁查詢方法

publicinterfaceUserService{

?

publicUserqueryUserById();

?

/**

?

* 分頁方法定義

?

* @param pageNum 當(dāng)前頁號

?

* @param pageSize 設(shè)置每頁顯示數(shù)量

?

* @return

?

*/

?

? ? publicPageInfo<User>queryUsers(intpageNum,intpageSize);

?

}

UserServiceImpl 實(shí)現(xiàn)方法:

@Service

?

publicclassUserServiceImplimplementsUserService{

?

@Resource

?

privateUserDaouserDao;

?

publicUserqueryUserById(){

?

? ? returnuserDao.queryUserById(7);

?

?? }

?

@Override

?

publicPageInfo<User>queryUsers(intpageNum,intpageSize) {

?

/**

?

* PageHelper 類設(shè)置分頁頁號與每頁大小

?

*/

?

PageHelper.startPage(pageNum,pageSize);

?

List<User>list=userDao.queryUsers();

?

PageInfo<User>pageInfo=newPageInfo<User>(list);

?

returnpageInfo;

?

?? }

?

}

5.測試分頁效果

數(shù)據(jù)庫原始記錄

測試

第一次 PageNum =1 pageSize=1

@Test

?

publicvoidtestQueryUsers() {

?

PageInfo<User>pageInfo=userService.queryUsers(1,1);

?

for(Useruser:pageInfo.getList()){

?

? ? System.out.println("user:"+user);

?

?? } ?

?

}

結(jié)果:

第二次 pageNum=2 pageSize=1

@Test

?

publicvoidtestQueryUsers() {

?

PageInfo<User>pageInfo=userService.queryUsers(2,1);

?

for(Useruser:pageInfo.getList()){

?

? ? System.out.println("user:"+user);

?

?? } ?

?

}

結(jié)果

備注:分頁插件 如果傳入的頁碼 操作記錄總頁數(shù) 此時我們得到的是最后一頁的記錄

第三次測試 PageNum=3 pageSize=1

@Test

?

publicvoidtestQueryUsers() {

?

PageInfo<User>pageInfo=userService.queryUsers(3,1);

?

for(Useruser:pageInfo.getList()){

?

? ? System.out.println("user:"+user);

?

?? } ?

?

}

結(jié)果:

擴(kuò)展

分頁插件壓縮版

解壓即可使用,和之前配置一樣去配置好 config.xml,再運(yùn)行 run.bat 即可

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,572評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,707評論 2 370

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