JavaWeb分页显示内容和数据库分页查询

您所在的位置:网站首页 怎么将word分页显示 JavaWeb分页显示内容和数据库分页查询

JavaWeb分页显示内容和数据库分页查询

2023-11-04 22:04| 来源: 网络整理| 查看: 265

什么是分页查询?

从数据库中查询数据,在客户端显示出来。当数据少时,可以在一个页面内显示完成。然而,如果查询记录是几百条、上千条呢?直接一个页面显示完全的话,表格得多长啊。。。。。。这时,我们可以用分页技术。

效果图如下:

 分页效果的实现

原理:

在服务端分页。跳到第n页才查询、显示第n页内容。要点就是根据客户端表格的“页面”计算出数据库要查询的当前页面的第一条记录的位置。优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。

    重点在于两条语句:

select count(*) from ...:查询得到记录总条数

 select * from .. limit pageNo,rowsCount:查询从第pageNo条开始的rowsCount条数据。

然后把数据放到一个专门带数据的Page类,Page的类构造函数封装了计算页码的算法。

 

  跳页的实现:跳页是通过重定向来实现的,通过向当前网页传进待显示的pages,在跳转后根据pages重新算出页面显示的第一条,查limit条显示。

首页 上一页 ${pageNum } 下一页 尾页

数据显示效果:

ID 姓名 密码 性别 邮箱 备注 操作 ${teacher.id } ${teacher.name } ${teacher.password } ${teacher.gender } ${teacher.email } ${teacher.remark } 编辑 删除

java代码:

controller层

 service层

 dao层

//查询总的列数 @Override public int findTotalNum() { Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; int totalNum = 0; conn = DBUtil.getConnection(); String sql = "select count(*) from teacher"; try { ps = conn.prepareStatement(sql); rs = ps.executeQuery(); while(rs.next()){ totalNum = rs.getInt(1); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }DBUtil.closeAll(conn, ps, rs); return totalNum; } //返回分页查询的每页信息 @Override public List findTeacherBypage(int startIndex, int pageSize) { // TODO Auto-generated method stub Connection conn = null; PreparedStatement ps = null; ResultSet rs = null; ArrayList list = new ArrayList(); conn = DBUtil.getConnection(); String sql = "select id,name,password,gender,email,remark from teacher limit ?,?"; try { ps = conn.prepareStatement(sql); ps.setInt(1, startIndex); ps.setInt(2, pageSize); rs = ps.executeQuery(); while(rs.next()){ Teacher teacher = new Teacher(); teacher.setId(rs.getInt(1)); teacher.setName(rs.getString(2)); teacher.setPassword(rs.getString(3)); teacher.setGender(rs.getString(4)); teacher.setEmail(rs.getString(5)); teacher.setRemark(rs.getString(6)); list.add(teacher); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }DBUtil.closeAll(conn, ps, rs); return list; }



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3