天天看点

pagehepler分页插件

一、pagehelper介绍

pagehepler是一款可以帮助我们快速实现分页的插件,总之就是比传统的分页方式方便太多。话不多说,直接上手pagehelper插件的使用。

二、需要导入的依赖

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

三、在项目配置文件中添加配置

#pagehelper分页插件配置
pagehelper.helperDialect=mysql
pagehelper.reasonable=true
pagehelper.supportMethodsArguments=true
pagehelper.params=count=countSql
           

四、写一个查询所有的mapper接口

查询所有成员

public List<member> select_member();
           

在mapper.xml中添加对应的方法

<select id="select_member" resultType="com.jsjgf.pojo.member">
       select * from member
</select>
           

这里有关于实体类和mapper层的写法和以前的写法是一样的。

五、service层调用mapper层方法

@Override
    public List<member> select_member() {
        return memberMapper.select_member();
    }
           

六、controller层

@RequestMapping("/selMemberPage")
  public String pageHelper(@RequestParam(value="pageNo",defaultValue="1")int pageNo, @RequestParam(value="pageSize",defaultValue="7")int pageSize, Model model){

      PageHelper.startPage(pageNo,pageSize);
      List<member> members = memberService.select_member();
      PageInfo<member> page = new PageInfo<>(members);

      model.addAttribute("pageInfo",page);

      return "index";

  }
           
  • 1、核心代码:PageHelper.startPage(pageNo,pageSize);其实就只有这一句,pageNo代表当前页码,pageSize代表显示的数据条数。
  • 2、注意: PageHelper.startPage(pageNo,pageSize);它的下一句一定要跟查询语句,且只能对它后面跟着的第一条查询语句内容分页。
  • 3、PageInfo page = new PageInfo<>(members);这一句将查询到的信息进行整理,pagehelper插件会自动帮我们做。

七、前端展示

这里可以使用各种前端模板引擎接收数据,以thymeleaf为例:

<li th:if="${pageInfo.hasPreviousPage}"><a th:href="@{'/selMemberPage?pageNo=1'}" target="_blank" rel="external nofollow" >首页</a></li>
<li th:if="${pageInfo.hasPreviousPage}"><a th:href="@{'/selMemberPage?pageNo='+${pageInfo.prePage}}" target="_blank" rel="external nofollow" >上一页</a></li>
<li th:if="${pageInfo.hasNextPage}"><a th:href="@{'/selMemberPage?pageNo='+${pageInfo.nextPage}}" target="_blank" rel="external nofollow" >下一页</a></li>
<li th:if="${pageInfo.hasNextPage}"><a th:href="@{'/selMemberPage?pageNo='+${pageInfo.pages}}" target="_blank" rel="external nofollow" >尾页</a></li>
           

由于太简单,只展示分页按钮。

八、插件属性扩展

1、pageInfo.pageNum:当前页号

2、pageInfo.pageSize:每页显示数

3、pageInfo.startRow:起始页

3、pageInfo.endRow:终止页

4、pageInfo.total:总数据数

5、pageInfo.pages:总页数

6、pageInfo.isFirstPage:是否为第一页

7、pageInfo.isLastPage:是否为最后一页

8、pageInfo.hasPreviousPage:是否有上一页

9、pageInfo.hasNextPage:是否有下一页