Oracle、Mysql 分页查询
1.情景展示
在实际开发过程中,分页查询是最常使用的,只要存在表格查询,就会存在分页查询;
分页的好处在于:减少查询的数据量,不会给前端、后台服务器、数据库造成压力,减少用户等待时间。
2.Oracle分页
如果仅仅是SQL,不涉及前后端交互的话,最简单的分页查询就是:
显然,这种查询,对于我们来说,基本上没有意义,它往往蕴含着前后端交互:
由前端来决定要分页大小PageSize,分页的当前页PageIndex;
后台根据PageIndex和PageSize计算出开始页Start和结束页End。
前端:传当前页数和每页的大小
java:计算起始数和结束数
其核心点在于:
int start = (pageIndex - 1) * pageSize + 1;
int end = pageIndex * pageSize;
ibatis:
其核心点在于:
动态分页,即:当参数start和end有值时,才进行分页,没值时,查询的是所有数据。
3.Mysql分页
最简单查询:
前端同上;
java:计算起始数和结束数;
其核心点在于:
int start = (pageIndex - 1) * pageSize;
int end = pageIndex * pageSize;
ibatis:
其核心点在于:
动态分页,即:当参数start和end有值时,才进行分页,没值时,查询的是所有数据。
4.小结
Mysql和Oracle分页的区别在于:
Mysql使用limit分页,Oracle使用rownum分页;
Mysql的limit1,2相当于:1 Oracle分页是:1≤rownum≤2,得到的是第一行和第二行的记录,也就是前两行数据。 所以,这才是造成Mysql起始数从0开始,Oracle从1开始的真正原因。 其实Oracle也可以用int start = (pageIndex - 1) * pageSize; 不过,ibatis里面不能再用≥start,而是使用>start即可。 哪位大佬如若发现文章存在纰漏之处或需要补充更多内容,欢迎留言!!!写在最后
相关推荐: