MyBatis使用pagehelper进行分页

Posted shouyaya

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyBatis使用pagehelper进行分页相关的知识,希望对你有一定的参考价值。

使用pagehelper分页的原理是:

  通过MyBatis的插件原理(类似web里的filter拦截器),在mapper配置文件将pagehelper注册为MyBatis的插件,从而进行分页

1.通过maven引入pagehelper依赖:

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

2.在MyBatis的mapper配置文件将pagehelper注册为MyBatis的插件

   <plugins>
        <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
    </plugins>

3.pagehelper的用法:

private void selectAllUsers(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {

        String num=request.getParameter("num");

        if(null==num)
        {
            num="1";
        }

        // Page PageInfo

        Page<?> page=PageHelper.startPage(Integer.parseInt(num),5);  //设置第几条记录开始,多少条记录为一页

        //通过userService获取user的信息,其sql语句为"select * from user" 但因pagehelp已经注册为插件,所以pagehelp会在原sql语句上增加limit,从而实现分页
        List<Person> persons=userService.getAllUsersBypageHelper();  //因而获得的是分好页的结果集
         
        PageInfo<?> pageHelper=page.toPageInfo(); //获取页面信息的对象,里面封装了许多页面的信息 如:总条数,当前页码,需显示的导航页等等

        request.setAttribute("persons",persons);
        request.setAttribute("pagehelper",pageHelper);

        request.getRequestDispatcher("/persons.jsp").forward(request,response);

    }

 

以上是关于MyBatis使用pagehelper进行分页的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot整合mybatis使用pageHelper插件进行分页操作

Mybatis下collections使用pageHelper进行分页

MyBatis 分页插件 PageHelper:是如何拦截SQL进行分页

逆向工程文件example完美结合使用PageHelper分页插件及分页不成功原因

MyBatis-----7.pageHelper分页助手

Mybatis分页插件PageHelper的使用-