sql,mybatis,javascript分页功能的实现

用三种不同的方法实现多数据的分页功能。原生sql和mybatis的操作需要每次点击不同页数时都发送http请求,进行一次数据库查询,如果放在前端页面写js语句则不需要每次都请求一次,下面是三种不同的方式示例。

效果图

 

第一种js方式:

 

 //分页         主要思想是获取当前页数和每页需要显示的数据量,然后把总数据用JavaScript slice()方法进行选取
            $scope.queryList = function () {
                //num1 当前页数
                var num1 = $scope.paginationConf.currentPage;
                //num2 当前每页显示的数据量
                var num2 = $scope.paginationConf.itemsPerPage;
                var num3;
                var num4;
                if (num1 > 0) {
                    num3 = (num1 - 1) * num2;
                    num4 = (num1 - 1) * num2 + num2;
                } else {
                    num3 = num1 * num2;
                    num4 = num1 * num2 + num2;
                }
                //分页显示的数据数
                $scope.postData = [];
                //总的数据数
                var postDataAll = [];
                for (var i in listData) {
                    postDataAll[i] = listData[i];
                }
                //取得分页显示的数据项
                $scope.postData = postDataAll.slice(num3, num4);
                //共xx条数据
                $scope.paginationConf.totalItems = postDataAll.length;
            };

            $scope.$watch('paginationConf.currentPage + paginationConf.itemsPerPage', $scope.queryList);

  

第二种 普通sql语句   主要思想是利用limit对数据进行限定    

data.page 页数
data.pagesize  每页显示的数据量
if (data.page < 1) {
data.page = 1;
}
sql += " limit " + ((data.page - 1) * data.pagesize) + "," + (data.page * data.pagesize);

  

第三种 mybatis   同样是利用limit对数据进行限定   

 <sql id="pageUtil">
      limit #{startNum},#{pagesize}        
 </sql>

 

posted @ 2016-12-06 18:02  GIScript  阅读(678)  评论(0编辑  收藏  举报