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

分頁插件使用的方式

  • 修改 pom 文件综苔,添加分頁 jar 包依賴

  • 修改 mybatis.xml 文件

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

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

  • 測試分頁效果

案例實操

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 類所在包名 --> 

    <plugin interceptor="com.github.pagehelper.PageHelper"> 

        <property name="dialect" value="mysql" /> 

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

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

        --> 

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

        <property name="offsetAsPageNum" value="true" /> 

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

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

        <property name="rowBoundsWithCount" value="true" /> 

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

        部的結(jié)果 --> 

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

        <property name="pageSizeZero" value="true" /> 

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

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

        最后一頁 --> 

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

        <property name="reasonable" value="true" /> 

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

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

        中取值 --> 

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

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

        <property name="params" 

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

        ntsql" /> 

    </plugin> 

</plugins> 

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

UserDao 接口:

public interface UserDao { 

public User queryUserById(int id); 

    public List<User> queryUsers(); 

} 

UserMapper.xml

<?xml version="1.0" encoding="UTF-8" ?> 

<!DOCTYPE mapper 

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

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

<mapper namespace="com.mage.dao.UserDao"> 

    <select id="queryUserById" parameterType="int" resultType="user"> 

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

    </select> 

    <select id="queryUsers" resultType="user"> 

        select id,userName,userPwd from user  

    </select> 

</mapper> 

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

public interface UserService { 

public User queryUserById(); 

    /** 

    * 分頁方法定義 

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

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

    * @return 

    */ 

    public PageInfo<User> queryUsers(int pageNum,int pageSize); 

} 

UserServiceImpl 實現(xiàn)方法:

@Service 

public class UserServiceImpl implements UserService{ 

    @Resource 

    private UserDao userDao; 

    public User queryUserById(){ 

        return userDao.queryUserById(7);  

    } 

    @Override 

    public PageInfo<User> queryUsers(int pageNum, int pageSize) { 

        /** 

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

        */ 

        PageHelper.startPage(pageNum, pageSize); 

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

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

        return pageInfo; 

    } 

} 

5.測試分頁效果

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

image

測試

第一次 PageNum =1 pageSize=1

@Test 

public void testQueryUsers() { 

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

        for(User user:pageInfo.getList()){ 

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

    }  

} 

結(jié)果:

image

第二次 pageNum=2 pageSize=1

@Test 

public void testQueryUsers() { 

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

    for(User user:pageInfo.getList()){ 

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

    }  

} 

結(jié)果

image

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

第三次測試 PageNum=3 pageSize=1

@Test 

public void testQueryUsers() { 

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

    for(User user:pageInfo.getList()){ 

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

    }  

} 

結(jié)果:

image

擴展

分頁插件壓縮版

image

解壓即可使用抬伺,和之前配置一樣去配置好 config.xml,再運行 run.bat 即可

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末灾梦,一起剝皮案震驚了整個濱河市峡钓,隨后出現(xiàn)的幾起案子妓笙,更是在濱河造成了極大的恐慌,老刑警劉巖能岩,帶你破解...
    沈念sama閱讀 217,907評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件寞宫,死亡現(xiàn)場離奇詭異,居然都是意外死亡拉鹃,警方通過查閱死者的電腦和手機辈赋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來膏燕,“玉大人钥屈,你說我怎么就攤上這事“颖瑁” “怎么了篷就?”我有些...
    開封第一講書人閱讀 164,298評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長近忙。 經(jīng)常有香客問我竭业,道長,這世上最難降的妖魔是什么及舍? 我笑而不...
    開封第一講書人閱讀 58,586評論 1 293
  • 正文 為了忘掉前任未辆,我火速辦了婚禮,結(jié)果婚禮上击纬,老公的妹妹穿的比我還像新娘鼎姐。我一直安慰自己,他們只是感情好更振,可當(dāng)我...
    茶點故事閱讀 67,633評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著饭尝,像睡著了一般肯腕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上钥平,一...
    開封第一講書人閱讀 51,488評論 1 302
  • 那天实撒,我揣著相機與錄音,去河邊找鬼涉瘾。 笑死知态,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的立叛。 我是一名探鬼主播负敏,決...
    沈念sama閱讀 40,275評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼秘蛇!你這毒婦竟也來了其做?” 一聲冷哼從身側(cè)響起顶考,我...
    開封第一講書人閱讀 39,176評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎妖泄,沒想到半個月后驹沿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蹈胡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,819評論 3 336
  • 正文 我和宋清朗相戀三年渊季,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片罚渐。...
    茶點故事閱讀 39,932評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡梭域,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出搅轿,到底是詐尸還是另有隱情病涨,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評論 5 346
  • 正文 年R本政府宣布璧坟,位于F島的核電站既穆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏雀鹃。R本人自食惡果不足惜幻工,卻給世界環(huán)境...
    茶點故事閱讀 41,265評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望黎茎。 院中可真熱鬧囊颅,春花似錦、人聲如沸傅瞻。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嗅骄。三九已至胳挎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間溺森,已是汗流浹背慕爬。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留屏积,地道東北人医窿。 一個月前我還...
    沈念sama閱讀 48,095評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像炊林,于是被迫代替她去往敵國和親姥卢。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,884評論 2 354

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