## 分頁插件使用的方式
- 修改 pom 文件瘾敢,添加分頁 jar 包依賴?
- 修改 mybatis.xml 文件
- UserDao 接口救赐,UserMapper.xml 添加對應方法與實現(xiàn) sql
- 對應 UserService 接口添加分頁查詢方法
- 測試分頁效果
## 案例實操
### 1.修改 pom 文件,添加分頁 jar 包依賴
~~~ xml
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency>
~~~
### 2.修改 mybatis.xml 文件
~~~ xml
<plugins>
? ? <!-- com.github.pagehelper 為 PageHelper 類所在包名 -->
? ? <plugin interceptor="com.github.pagehelper.PageHelper">
? ? ? ? <property name="dialect" value="mysql" />
? ? ? ? <!-- 該參數(shù)默認為 false -->
? ? ? ? <!-- 設置為 true 時切油,會將 RowBounds 第一個參數(shù) offset 當成 pageNum 頁碼使用
? ? ? ? -->
? ? ? ? <!-- 和 startPage 中的 pageNum 效果一樣 -->
? ? ? ? <property name="offsetAsPageNum" value="true" />
? ? ? ? <!-- 該參數(shù)默認為 false -->
? ? ? ? <!-- 設置為 true 時蝙斜,使用 RowBounds 分頁會進行 count 查詢 -->
? ? ? ? <property name="rowBoundsWithCount" value="true" />
? ? ? ? <!-- 設置為 true 時,如果 pageSize=0 或者 RowBounds.limit = 0 就會查詢出全
? ? ? ? 部的結(jié)果 -->
? ? ? ? <!-- (相當于沒有執(zhí)行分頁查詢澎胡,但是返回結(jié)果仍然是 Page 類型) -->
? ? ? ? <property name="pageSizeZero" value="true" />
? ? ? ? <!-- 3.3.0 版本可用 - 分頁參數(shù)合理化孕荠,默認 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,不配置映射
? ? ? ? 的用默認值 -->
? ? ? ? <property name="params"
? ? ? ? value="pageNum=start;pageSize=limit;pageSizeZero=zero;reasonable=heli;count=cou
? ? ? ? ntsql" />
? ? </plugin>
</plugins>
~~~
### 3.UserDao 接口戚宦,UserMapper.xml 添加對應方法與實現(xiàn) sql
UserDao 接口:
~~~ java
public interface UserDao {
public User queryUserById(int id);
public List<User> queryUsers();
}
~~~
UserMapper.xml
~~~ 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.對應 UserService 接口添加分頁查詢方法
~~~ java
public interface UserService {
public User queryUserById();
? ? /**
? ? * 分頁方法定義
? ? * @param pageNum 當前頁號
? ? * @param pageSize 設置每頁顯示數(shù)量
? ? * @return
? ? */
public PageInfo<User> queryUsers(int pageNum,int pageSize);
}
~~~
UserServiceImpl 實現(xiàn)方法:
~~~ java
@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 類設置分頁頁號與每頁大小
? ? ? ? */
? ? ? ? PageHelper.startPage(pageNum, pageSize);
? ? ? ? List<User> list=userDao.queryUsers();
? ? ? ? PageInfo<User> pageInfo=new PageInfo<User>(list);
? ? ? ? return pageInfo;
? ? }
}
~~~
### 5.測試分頁效果
數(shù)據(jù)庫原始記錄
![](https://img-blog.csdnimg.cn/img_convert/6b3d6caa48dcd394156c72bce2211fd4.png)
測試
第一次 PageNum =1 pageSize=1
~~~ java
@Test
public void testQueryUsers() {
? ? PageInfo<User> pageInfo= userService.queryUsers(1, 1);
? ? ? ? for(User user:pageInfo.getList()){
? ? ? ? System.out.println("user:"+user);
? ? }?
}
~~~
結(jié)果:
![](https://img-blog.csdnimg.cn/img_convert/f5ebdae74c439b7621ee52645759989c.png)
第二次 pageNum=2 pageSize=1
~~~ java
@Test
public void testQueryUsers() {
? ? PageInfo<User> pageInfo= userService.queryUsers(2, 1);
? ? for(User user:pageInfo.getList()){
? ? System.out.println("user:"+user);
? ? }?
}
~~~
結(jié)果
![](https://img-blog.csdnimg.cn/img_convert/718a411014ad7ae2d8ca0c97d85cafce.png)
備注:分頁插件 如果傳入的頁碼 操作記錄總頁數(shù) 此時我們得到的是最后一頁的記錄
第三次測試 PageNum=3 pageSize=1
~~~ java
@Test
public void testQueryUsers() {
? ? PageInfo<User> pageInfo= userService.queryUsers(3, 1);
? ? for(User user:pageInfo.getList()){
? ? System.out.println("user:"+user);
需要視頻配套資料或其他資料+我們小姐姐V lezijie007(加好友暗號 -98 个曙,不備注不加)
? ? }?
}
~~~
結(jié)果:
![](https://img-blog.csdnimg.cn/img_convert/c920bf9940b5294d2bce6b746f726f0a.png)
## 擴展
### 分頁插件壓縮版
![](https://img-blog.csdnimg.cn/img_convert/1adea76ca4d01801b5775baf5c0269a9.png)
解壓即可使用,和之前配置一樣去配置好 config.xml受楼,再運行 run.bat 即可
![](https://img-blog.csdnimg.cn/img_convert/91924edb94bd9dcdbfc17ac311578584.png)