分页--PageHelper的使用

POM依赖

<dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>5.2.0</version>
 </dependency>

Mybatis配置文件

<plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor">
            <property name="helperDialect" value="mysql"/>
        </plugin>
    </plugins>

Servlet代码示例

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        String page = request.getParameter("page");
        String size = request.getParameter("size");
        StudentService studentService = new StudentServiceImpl();
        PageHelper.startPage(page == null ? 1:Integer.parseInt(page),size == null ? 4:Integer.parseInt(size));
        List<Student> list = studentService.findAllStudent();
        PageInfo pageInfo = PageInfo.of(list);
        response.getWriter().println(new ObjectMapper().writeValueAsString(pageInfo));
    }

1、PageHelper的优点是,分页和Mapper.xml完全解耦。实现方式是以插件的形式,对Mybatis执行的流程进行了强化,添加了总数count和limit查询。属于物理分页。

2、Page page = PageHelper.startPage(pageNum, pageSize, true); - true表示需要统计总数,这样会多进行一次请求select count(0); 省略掉true参数只返回分页数据。

参考:

https://www.cnblogs.com/kangoroo/p/7998433.html

posted @ 2020-10-26 17:47  FivePointOne  阅读(2466)  评论(0编辑  收藏  举报