zoukankan      html  css  js  c++  java
  • Mybatis分页插件PageHelper的使用

    PageHelper分页的实现利用了自定义拦截器实现了Mybatis拦截器接口。

    1、pom.xml中引入pageHelper分页jar包

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

    2、spring配置文件中配置分页插件

    <!-- 把交给IOC管理 SqlSessionFactory -->
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="dataSource" ref="dataSource"/>
            <!--配置mybatis 插件-->
            <property name="plugins">
                <set>
                    <!--配置pageHelper 分页插件-->
                    <bean class="com.github.pagehelper.PageInterceptor">
                        <property name="properties">
                            <props>
                                <!--方言:-->
                                <prop key="helperDialect">oracle</prop>
                            </props>
                        </property>
                    </bean>
                </set>
            </property>
        </bean>

    3、部分junit测试代码

        @Autowired
        private EmployeeService employeeService;
    
        @Test
        public void testPageHelper() {
            // 设置分页查询
            PageHelper.startPage(1, 3);
            List<Employee> empList = employeeService.getEmpByPage();
            for (Employee employee: empList) {
                System.out.println(employee);
            }
            // 此处输出的结果调用的PageHelper分页插件中Page类中重写的toString方法,其中Page类继承自ArrayList
            System.out.println(empList);
            PageInfo pageInfo = new PageInfo(empList);
            System.out.println(pageInfo);
        }

    其中需要注意的是Page类继承自ArrayList,其中重写了toString()方法

     重写的toString()方法

    public String toString() {
            return "Page{count=" + this.count + ", pageNum=" + this.pageNum + ", pageSize=" + this.pageSize + ", startRow=" + this.startRow + ", endRow=" + this.endRow + ", total=" + this.total + ", pages=" + this.pages + ", reasonable=" + this.reasonable + ", pageSizeZero=" + this.pageSizeZero + '}' + super.toString();
        }

    例如上面junit测试代码中

    System.out.println(empList)打印的结果如下

    Page{count=true, pageNum=1, pageSize=3, startRow=0, endRow=3, total=14, pages=5, reasonable=false, pageSizeZero=false}[Employee{empno=7369, ename=SMITH, job=CLERK, mgr=7902, hiredate=Wed Dec 17 00:00:00 GMT+08:00 1980, sal=800.0, comm=0, deptno=20}, Employee{empno=7499, ename=ALLEN, job=SALESMAN, mgr=7698, hiredate=Fri Feb 20 00:00:00 GMT+08:00 1981, sal=1600.0, comm=300, deptno=30}, Employee{empno=7521, ename=WARD, job=SALESMAN, mgr=7698, hiredate=Sun Feb 22 00:00:00 GMT+08:00 1981, sal=1250.0, comm=500, deptno=30}]

    PageInfo封装了结果集。如果需要取数据,可以利用该类中的对应方法。

  • 相关阅读:
    vueJs+webpack单页面应用--vue-router配置
    webstorm IDE添加Plugins----添加vue插件
    WebStorm 11、PhpStorm 10免费激活(不需要注册码)
    webpack react基础配置二 热加载
    webpack react基础配置一
    移动端页面去掉click点击 背景色变化
    css美化checkbox radio样式
    ie11媒体查询以及其他hack
    angularJS ng-grid 配置
    网络7. TCP/IP网络之网络接口层
  • 原文地址:https://www.cnblogs.com/alphajuns/p/12629224.html
Copyright © 2011-2022 走看看