分页

我以前做过商城项目,项目中有一个小功能,但是很折磨人,那就是分页。

今天我们就看看分页是怎么写的。

在我的数据库中有一个user表,在表中插入多条数据。(多查几条,别没分几页就没数据了)。

这个是我的SSM工程的类分布。可以参考一下。

做分页之前,我们要创建一个Page类,这个类中写上分页需要的属性。然后实现getter和setter方法。

            

看一下上面的page类。这个类中,我分别写了五个属性(当前页,每页条数,总页数,总行数,下标 )。

(1)我们要在currentPage后面附上初始值=1,告诉他我要显示第一页的数据。

(2)在pageSize后面附上每页要显示的每页显示多少条数据。(我数据有限就写了两条,大家根据自己的需求定义)。

(3)totalPage是要根据 查询出来的rows的数量,再来进一步计算totalPage的数量。我们在totalPage的getter方法中

加上计算。

(4)rows在上面也说了,等会是要从数据库中查出具体的行数(多少条数据)。

(5)begin,我们要用到下标去数据库中去数据。limit 0,2   【0是指起始行,2是指要查多少条数据】。

  我们来细看一下begin的getter方法中的算法:begin = (currentPage-1)* pageSize     

  currentPage我们设置了一个默认值是1,他就会查出下标为 [ (1-1) *2 }  的(pageSize)条数据。让你点击分页下的其他

  页数(假如点了第5页),前台就会传给controller一个currentPage=5的值, 

  再根据算法 (5-1)* pageSize (按我每页显示的条数2,来计算,就是下标为8的后两条数据)。以此类推

  我已经说的很细了啊,你们要是还不懂就自己在设想几个数,推一推!!!

这个是我的UserMapper.xml文件中的sql语句。

 

这个是我的Controller层。里面有注释就不需要我多解释了。

这个是list.jsp界面,看一下,很容易理解。

显示出来的页面,当然都是可以点的啊,也能实现想要的效果。 

我只是简单的告诉大家,分页的逻辑。我写的这个页面也不是很完善。望谅解

原文地址:https://www.cnblogs.com/buwang/p/9971055.html