分页思路(mysql)
1、在DBUtil层查询数据。
2、在Dao层传入Sql和占位的数据params。
3、service层调用Dao层方法。
4、servlet层获取前台的的数据,层层传递到BDUtil层
5、总页数 = 总数据个数%每页显示几条数据==0?总数据个数%每页显示几条数据:(总数据个数%每页显示几条数据)+1
实现原理:
1、利用mysql的limit实现。
2、mysql的分页是从0页开始。
-
limit m:返回m条数据。
-
offset m:跳过m条数据。
-
limit n,m -->(limit m offset n):跳过n条数据返回m条数据。
3、String sql = “select * from code limit ?,?”;
- 第一个占位符应为(n * m),第二个占位则为m:表示每次跳过(n * m)条数据,读取m条数据。
4、获取最大数据个数:String sql = “select count(1) from code”;
//查询后的数据个数大于页面数据个数
if(this.getPageCount(con,userName,roleId) >pageData){
sql.append("order by u.creationDate DESC limit ?,?");
//mysql从第0页开始
arrayList.add(current * pageData);
arrayList.add(pageData);
}
Object[] params = arrayList.toArray();