java - 请教一个更加优雅的实现业务中的分页加载的问题?
问题描述
在负责学校下学期图书馆的项目的一部分,现在碰到了一个业务设计的困难。
比如说在首页的话,我计划当学生查询相关的信息的时候全部采用ajax加载,不是很习惯很多网站比如知乎那种拖动到底部自动加载。我的想法是在底部设置一个分页的选项,每一页显示15条记录,文章全部采用ajax加载。
这样sql语句大概就是select xxx from xxx condition limit 15 offset xxx。但是现在由于要做分页,我必须要知道一个学生总共有多少条记录在数据库中,前端才好设计,总记录可以通过sql语句select count(*) from xxx condition查询出来,然后将总记录保存在前端中。
如果这样的话,必须要为拆分成两条sql语句查询,感觉不是很优雅,请问有什么更加优雅的实现方案么?
ps: 因为在系统中有很多相似的业务都是要采用类似的分页设计,每次都这样使用两条sql语句分开查询太不优雅了。
补充
答主好像都没看请题目。一位是答的就是sql语句1,另外一位说的是前端。
多谢各位网友的回答,问题已解决,看来只能采用两条sql语句了 ^_^
问题解答
回答1:var start = 页标 - 1;$.get('url?start=' + start * 15,function(){});
$start = $_GET['start'];$end = $start + 15;$sql = 'select * from table limit {$start}, {$end}';
select a.*, b.count from table a, (select count(*) as count from table ) b LIMIT 1,15回答2:
不用想了,必须是两条的.要一条也行:select * from tableunion select 0, 0...., count(*) from table
回答3:这很正常。如果想用一条sql解决,就把所有对象从数据库里查出来再做一系列操作,但搞不好你的内存就爆掉了。
回答4:不用想了 必须是两条 。分页的实现 定义一个泛型类page<T> 里面放什么 需要我说的更详细吗?
回答5:试试PageHelper,就一条sql语句,甚至不需要limit
回答6:要优雅的分页 分页的插件很多的
相关文章:
1. java - 创建maven项目失败了 求解决方法2. 运行python程序时出现“应用程序发生异常”的内存错误?3. java-se - 正在学习Java SE,为什么感觉学习Java就是在学习一些API。4. 一个走错路的23岁傻小子的提问5. python - 如何使用pykafka consumer进行数据处理并保存?6. javascript - SuperSlide.js火狐不兼容怎么回事呢7. node.js - 函数getByName()中如何使得co执行完后才return8. 主从备份 - 跪求mysql 高可用主从方案9. javascript - git clone 下来的项目 想在本地运行 npm run install 报错10. python - django 里自定义的 login 方法,如何使用 login_required()
