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