分页思路及实现原理(MySQL)

分页思路(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();
发布了61 篇原创文章 · 获赞 0 · 访问量 2191

猜你喜欢

转载自blog.csdn.net/sabstarb/article/details/104380425
今日推荐