如何使用分页插件

1、如何使用分页插件文档:

https://pagehelper.github.io/docs/howtouse/

 

2、分页插件使用步骤

<!-- 1、在普通maven中使用-->

a>添加依赖

<!-- https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper --> 
<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.0</version> </dependency>

 

b>配置分页插件 - 在MyBatis的核心配置文件中配置插件

<plugins> 
  <!--设置分页插件--> 
  <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin> 
</plugins>

 

<!-- 2、在springBoot中使用-->

在pom.xml中添加依赖即可使用

 

<dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>1.4.1</version>
</dependency>

 

 

 

 

 

 

c>分页插件的使用

1、在查询功能之前使用PageHelper.startPage(int pageNum, int pageSize)开启分页功能

pageNum:当前页的页码

pageSize:每页显示的条数

 

注:sql语句查询分页数据:select * from 表名 limit index pageSize

      index  当前页的起始索引 / 从0开始

      pageSize  每页显示的条数

      pageNum  当前页的页码

     index=(pageNum-1)*pageSize

 

2、在查询获取list集合之后,使用PageInfo<T> pageInfo = new PageInfo<>(List<T> list, intnavigatePages)获取分页相关数据

list:分页之后的数据

navigatePages:导航分页的页码数

 

3、分页相关数据

PageInfo{

pageNum=8, pageSize=4, size=2, startRow=29, endRow=30, total=30, pages=8,

list=Page{count=true, pageNum=8, pageSize=4, startRow=28, endRow=32, total=30,pages=8, reasonable=false, pageSizeZero=false},

prePage=7, nextPage=0, isFirstPage=false, isLastPage=true, hasPreviousPage=true,

hasNextPage=false, navigatePages=5, navigateFirstPage4, navigateLastPage8,

navigatepageNums=[4, 5, 6, 7, 8]

}

 

4、常用数据:

pageNum:当前页的页码

pageSize:每页显示的条数

size:当前页显示的真实条数

total:总记录数

pages:总页数

prePage:上一页的页码

nextPage:下一页的页码

isFirstPage/isLastPage:是否为第一页/最后一页

hasPreviousPage/hasNextPage:是否存在上一页/下一页

navigatePages:导航分页的页码数

navigatepageNums:导航分页的页码,[1,2,3,4,5]

 

3、代码写法

1)mapper 接口

List<User> findAllUser();

 

2)mapper映射文件

<select id="findAllUser" resultType="User">
    SELECT * FROM user
</select>

 

3)service 层

@Autowired
    private UserMapper userMapper;
    
    public List<User> findUserList() {
        return userMapper.findAllUser();
    }

 

4)控制层

       // 不分页
    @RequestMapping(value = "/findUserList",method = RequestMethod.GET)
    public List<User> findUserList() {
        return userService.findUserList();
    }
    
    // 单纯的分页,不需要分页信息
    @RequestMapping(value = "/findUserListByPage",method = RequestMethod.GET)
    public List<User> findUserListByPage() {
        PageHelper.startPage(1, 5);
        return userService.findUserList();
    }
    
    // 分页,直接使用PageInfo封装分页相关信息
    @RequestMapping(value = "/findUserListByPageInfo",method = RequestMethod.GET)
    public PageInfo<User> findUserListByPageInfo() {
        PageHelper.startPage(1, 5);
        List<User> list = userService.findUserList();
        PageInfo<User> pageInfo = new PageInfo<User>(list);
        return pageInfo;
    }
    
    // 分页,利用page获取分页信息,然后封装map
    @RequestMapping(value = "/findUserListByPage1",method = RequestMethod.GET)
    public Map<String, Object> findUserListByPage1() {
        Map<String, Object> result = new HashMap<>();
        // 设置分页,1代表第一页,5代表这一页有五条数据
        Page<User> page = PageHelper.startPage(1, 5);
        userService.findUserList();
        result.put("total", page.getTotal());
        result.put("pageNo", page.getPageNum());
        result.put("pages", page.getPages());
        result.put("pageSize", page.getPageSize());
        result.put("rows", page.getResult());
        return result;
    }

 

posted @ 2022-04-24 10:22  Lfollow  阅读(306)  评论(0编辑  收藏  举报