1.持久层分页功能实现的关键代码:
String sql = "select count(*) from v_student" + whereSql;
Number number = (Number) qr.query(sql, new ScalarHandler(), params.toArray());
int tr = number.intValue();// 得到了总记录数
sql = "select * from v_student" + whereSql + " limit ?,?";
params.add((pc - 1) * ps);// 当前页首行记录的下标
params.add(ps);// 一共查询几行,就是每页记录数
List<Student> beanList = qr.query(sql, new BeanListHandler<Student>(
Student.class), params.toArray());
主要是依赖于 sql 的 limit x,y。有两个参数 ,x 表示从第几条记录开始,y 表示取几条记录。如果对应到你的代码可以理解为 y 就是 pageSize,而 x 的话需要计算出来 (pageNum(页码) - 1) * pageSize
SQL 语句中的 limit offset 可以直接做分页。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632