欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MyBatis基于pagehelper实现分页原理及代码实例

程序员文章站 2023-02-20 21:02:39
使用pagehelper分页的原理是:通过mybatis的插件原理(类似web里的filter拦截器),在mapper配置文件将pagehelper注册为mybatis的插件,从而进行分页1.通过ma...

使用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);

  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。