赞
踩
分页插件给我们封装了很多参数,不用我们再去硬性编码获取各种参数。
pageHelper封装参数如下,这个参数封装在com.github.pagehelper.page中:
分页查询从两个角度,一个是分页方式,另个是数据库类型,这是所有方式和数据库类型的方法约束接口
这个抽象类只为了实现一个方法,就是生成获取count的sql,这一过程是通过调用CountSqlParser来实现的。
物理分页方式的接口,也就是需要多少数据查找多少数据
逻辑分页方式的接口,将所有的数据全部查找出来,需要哪些就截取哪些,有可能会造成内存溢出的问题
通过解析sql,提供更智能的sql来获取count,这个问题是分页问题的痛点,可惜的是pageHelper仍然无法避免对于count的全表扫描
分页的方法类,pageHelper继承此类,对所有操作进行拦截操作
通过对于pageHelper源码的学习,发现他没能解决count获取的时候全表扫描的问题,而真实开发的时候,我们一会会选择innoDB引擎的数据库,这个数据库使用count函数会进行全表扫描。
所以pageHelper没能解决这个问题挺失望的,虽然如此,但是pageHelper仍然可以解决代码臃肿的问题,仍然可以是分页插件的首选。
如果真的需要总条数的情况,也不想因为分页进行全表扫描,只能进行试错,我们直接返回前端10w或者100w或者更多的总数,只有当访问最后一页,才能返会真实条数。
作者:积书网熊叔 更多免费学习资源尽在#积书网www.jeacher.com
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。