TZ_09_MyBatis的pageHelper

淺唱寂寞╮ 提交于 2019-11-28 15:57:46

1..分页操作使用MyBatis的PageHelper

  1>导入pageHelper的坐标

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

 

 

2>在applicationContext.xml的 sqlSessionFactory 中配置Pagehelper

<!--配置生产SqlSession对象的工厂 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!--扫描pojo包,给包下所有pojo对象起别名 -->
        <property name="typeAliasesPackage" value="com.hdh.domain" />
        
        <!-- 传入PageHelper的插件 -->
           <property name="plugins">
               <array>
                   <!-- 传入插件的对象 -->
                   <bean class="com.github.pagehelper.PageInterceptor">
                       <property name="properties">
                           <props>
                               <prop key="helperDialect">mysql</prop>
                               <prop key="reasonable">true</prop>
                           </props>
                       </property>
                   </bean>
               </array>
           </property>
    </bean>

 

 3>在业务层调用分页方法传入页数和每页的记录数

public List<Orders> findAllOrders(int page,int size) {
        
        PageHelper.startPage(page, size);
         List<Orders> orders=orderDao.findAllOrders();
        return orders;
    }

 

4.在数据返回页面之前将数据封装到PageInfo 中

    PageInfo pageInfo = new PageInfo(ordersList);
    mode.addObject("pageInfo", pageInfo);

    并且在页面中遍历时放入PageInfo的数据拿出来时应.list

              <c:forEach items="${pageInfo.list}" var="orders">

5.常用的pageHelper属性

  //当前页
    private int pageNum;
    //每页的数量
    private int pageSize;
    //当前页的数量
    private int size;
//当前页面第一个元素在数据库中的行号
    private int startRow;
    //当前页面最后一个元素在数据库中的行号
    private int endRow;
    //总记录数
    private long total;
    //总页数
    private int pages;
    //结果集
    private List<T> list;

    //前一页
    private int prePage;
    //下一页
    private int nextPage;

    //是否为第一页
    private boolean isFirstPage = false;
    //是否为最后一页
    private boolean isLastPage = false;
    //是否有前一页
    private boolean hasPreviousPage = false;
    //是否有下一页
    private boolean hasNextPage = false;
    //导航页码数
    private int navigatePages;
    //所有导航页号
    private int[] navigatepageNums;
    //导航条上的第一页
    private int navigateFirstPage;
    //导航条上的最后一页
    private int navigateLastPage;

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!