求大佬解读一下这一段分页的代码是怎样实现的!!!!

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