Java分页查询–分页显示(实例讲解)

2025-05-29 0 67

当数据库中数据条数过多时,一个页面就不能显示,这是要设置分页查询,首先要使用的是数据库sql语句的limit条件实现分组查询

sql语句大概形式为:

select * from table limit 开始索引,显示条数

用该语句就会实现分块查询,并且每页显示固定条数。

首先要实现后台分页,我们需要知道它有多少页,每页有多少行,这就需要知道一共多少行,调用sql语句时还需要知道每一页的开始索引,开始索引是根据当前页数算出来的,所以还需要知道当前页数,查询后会返回一个列表存储当前页数据。将这些属性及获取设置的方法封装成一个类就有了下面的page类:

Page类

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64
public class Page<T> {

private List<T> data;//数据列表

private int pagenum;//当前页数

private int pagesize;//当前页显示条数

private int rows;//总行数

public Page(int rows,int pagenum, int pagesize) {

super();

data=new ArrayList<>();

this.rows=rows;

this.setPagesize(pagesize);

this.setPagenum(pagenum);

}

public Page() {

super();

}

public int getPagenum() {

return pagenum;

}

public void setPagenum(int pagenum) {

if(pagenum>getTotalpage())

{

this.pagenum=getTotalpage();

}

else {

this.pagenum = pagenum;

}

if(pagenum<1)

{

this.pagenum=1;

}

}

public int getPagesize() {

return pagesize;

}

public void setPagesize(int pagesize) {

this.pagesize = pagesize;

}

public int getTotalpage() {

//计算总页数

if(rows%pagesize==0)

{

return rows/pagesize;

}

else {

return rows/pagesize+1;

}

}

public int getRows() {

return rows;

}

public void setRows(int rows) {

this.rows = rows;

}

public int getIndexnum() {

//获取索引值

return pagesize*(pagenum-1);

}

public List<T> getData() {

return data;

}

public void setData(List<T> data) {

this.data = data;

}

}

初始化时我们只需要获得数据总条数,页数及每页显示条数。数据总条数可以用sql语句select count(*)from table 获得。每次查询时只需要传入当前页数就可以了。将每次查询后的page对象传入jsp前台页面,并以一个div来显示

显示div

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32
<div>

<a href="/stuent8.11/stuServlet?pagenum=1" rel="external nofollow" >首页</a>

<a href="/stuent8.11/stuServlet?pagenum=${apage.pagenum-1 }" rel="external nofollow" >上一页</a>

<c:choose>

<c:when test="${apage.totalpage<=5 }">

<c:set var="begin" value="1"></c:set>

<c:set var="end" value="${apage.totalpage }"></c:set>

</c:when>

<c:when test="${apage.totalpage>5 }">

<c:set var="begin" value="1"></c:set>

<c:set var="end" value="5"></c:set>

<c:if test="${apage.pagenum>3 }">

<c:set var="begin" value="${apage.pagenum-2 }"></c:set>

<c:set var="end" value="${apage.pagenum+2 }"></c:set>

</c:if>

<c:if test="${end>apage.totalpage }">

<c:set var="begin" value="${apage.totalpage-4 }"></c:set>

<c:set var="end" value="${apage.totalpage }"></c:set>

</c:if>

</c:when>

</c:choose>

<c:forEach begin="${begin }" end="${end }" step="1" var="num">

<c:if test="${apage.pagenum==num }">

[${num }]

</c:if>

<c:if test="${apage.pagenum!=num }">

<a href="/stuent8.11/stuServlet?pagenum=${num }" rel="external nofollow" >${num }</a>

</c:if>

</c:forEach>

<a href="/stuent8.11/stuServlet?pagenum=${apage.pagenum+1 }" rel="external nofollow" >下一页</a>

<a href="/stuent8.11/stuServlet?pagenum=${apage.totalpage }" rel="external nofollow" >末页</a>

</div>

其中的一个choose是用于规定页面显示的最大页数,这里是5页,就是说当点到第4页是时,第1页就会消失,出现第6页。

以上这篇Java分页查询分页显示(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持快网idc。

原文链接:http://www.cnblogs.com/PersistWp/archive/2017/08/14/7360000.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Java分页查询–分页显示(实例讲解) https://www.kuaiidc.com/115289.html

相关文章

猜你喜欢
发表评论
暂无评论