TZ_09_MyBatis的pageHelper
Posted asndxj
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了TZ_09_MyBatis的pageHelper相关的知识,希望对你有一定的参考价值。
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;
以上是关于TZ_09_MyBatis的pageHelper的主要内容,如果未能解决你的问题,请参考以下文章