分頁插件使用的方式
修改 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 即可