PageHelper的使用

PageHelper:MyBatis的一个分页插件

  • 前端(AngularJS)
页面引入分页插件的依赖
<script src="../plugins/angularjs/pagination.js"></script>
<link rel="stylesheet" href="../plugins/angularjs/pagination.css">
构建app模块时引入pagination模块
var app=angular.module('testmod',['pagination']);
在需要分页的表格下面放置分页组件
<tm-pagination conf="paginationConf"></tm-pagination>
定义一个paginationConf对象,里面包含了配置信息
$scope.paginationConf = {
	currentPage: 1,
	totalItems: 10,
	itemsPerPage: 10,
	perPageOptions: [10, 20, 30, 40, 50],
	onChange: function(){
	        	 //这里面需要我们来实现    	
	}
}; 
写onChange方法的实现

PageHelper会监控paginationConf对象里的currentPage,totalItems,itemsPerPage这几个属性(通过$watch实现),一旦这几个属性发生变化,就会自动触发onChange方法。所以我们需要实现onChange方法

$scope.paginationConf = {
	...
	//要实现的逻辑就是把当前页码和每页的大小传给后端,拿到后端的返回数据后再更新对应的属性值
	onChange: function(){
		$scope.findPage( $scope.paginationConf.currentPage, $scope.paginationConf.itemsPerPage)
	}
}
$scope.findPage=function(page,rows){
		$http.get('../xxx?page='+page+'&rows='+rows).success(
			function(response){
				$scope.list=response.rows;	//更新查询数据
				$scope.paginationConf.totalItems=response.total;//更新总记录数
			}	
		);
}
  • 后端(SpringMVC+Mybatis)
在Mybatis配置文件里配置PageHelper分页插件
<plugins>
		<!-- PageHelper 类所在包名 -->
		<plugin interceptor="com.github.pagehelper.PageHelper">
			<!-- 设置数据库类型 Oracle,Mysql,MariaDB,SQLite,Hsqldb,PostgreSQL 六种数据库-->
			<property name="dialect" value="mysql"/>
		</plugin>
</plugins>
实现分页逻辑
//处理URL,拿到前端传来的的参数 pageNum(int):当前页码 pageSize(int):每页的大小
......
//通过PageHelper加载
PageHelper.startPage(pageNum, pageSize);
//Page是插件封装的一个类,继承了ArrayList<>,所以该类的实例可以直接通过Mybatis相关的dao操作的查询结果来赋值。
Page<entity> page= ...//dao查询操作
//需要返回给前端一个包含了long+List集合的对象(PageResult)
//其中long是总记录数。List是一个包含当前页数据的集合。
//long通过page.getTotal()取得,List通过page.getResult()取得。page就是上面的Page类的一个实例
return new PageResult(page.getTotal(), page.getResult());
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值