四、servlet 分页加载技术
来源:互联网 发布:项尖数据恢复注册码 编辑:程序博客网 时间:2024/06/05 14:50
一、分页算法:首先定义四个变量
int pageSize:每页显示多少条记录int pageNow:希望显示第几页int pageCount:一共有多少页int rowCount:一共有多少条记录说明:pageCount是计算出来的(1)算法1// 计算pageCountif (rowCount % pageSize == 0) { pageCount = rowCount / pageSize;} else { pageCount = rowCount / pageSize + 1;}(2)算法2pageCount = (rowCount + pageSize - 1) / pageSize;
二、使用mysql数据库做分页操作
(1)增加表的记录,实现快速复制sql语句:
insert into 表名 (字段1,字段2…) select 字段1,字段2… from 表名
(2)核心代码:
// -----------分页查询功能------------ int pageSize = 5;// 每页显示几条 int pageNow = 1;// 当前页 int rowCount = 0;// 共有多少条数据 int pageCount = 0;// 共有几页数据 String courrentPage = req.getParameter("pageNow"); if (courrentPage != null) { pageNow = Integer.parseInt(courrentPage); } Connection conn = null; PreparedStatement stmt = null; ResultSet resultSet = null; // 加载数据库驱动 try { Class.forName("com.mysql.jdbc.Driver"); // 获取数据库连接 String url = "jdbc:mysql://localhost:3306/student"; String user = "root"; String password = "tianyejun6"; conn = DriverManager.getConnection(url, user, password); String sql = "select count(*) from users"; stmt = (PreparedStatement) conn.prepareStatement(sql); resultSet = stmt.executeQuery(); if (resultSet.next()) { rowCount = resultSet.getInt(1); } // 计算pageCount if (rowCount % pageSize == 0) { pageCount = rowCount / pageSize; } else { pageCount = rowCount / pageSize + 1; } pageCount = (rowCount + pageSize - 1) / pageSize; // 执行查询语句 String sqlSearch = "select * from users where userId limit ?,?"; stmt = (PreparedStatement) conn.prepareStatement(sqlSearch); // 给?赋值 stmt.setInt(1, (pageNow - 1) * pageSize); stmt.setInt(2, pageSize); resultSet = stmt.executeQuery(); writer.println( "<table border='1'><tr><th>id</th><th>userName</th><th>password</th><th>email</th><th>grade</th></tr>"); while (resultSet.next()) { writer.println("<tr>"); writer.println("<td>" + resultSet.getInt(1) + "</td>"); writer.println("<td>" + resultSet.getString(2) + "</td>"); writer.println("<td>" + resultSet.getString(3) + "</td>"); writer.println("<td>" + resultSet.getString(4) + "</td>"); writer.println("<td>" + resultSet.getString(5) + "</td>"); writer.println("</tr>"); } writer.println("</table>"); // 显示上一页 if (pageNow > 1) { writer.print("<a href=Wel?pageNow=" + (pageNow - 1) + "> 上一页 </a>"); } // 显示超链接 for (int i = pageNow; i <= pageNow + pageSize - 1; i++) { writer.print("<a href=Wel?pageNow=" + i + "> " + i + " </a>"); } // 显示下一页 if (pageNow > 1 && (pageNow + 1) <= pageCount) { writer.print("<a href=Wel?pageNow=" + (pageNow + 1) + "> 下一页 </a>"); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (resultSet != null) { resultSet.close(); } if (stmt != null) { stmt.close(); } if (conn != null) { conn.close(); } } catch (Exception e) { e.printStackTrace(); } } }
注意:
mysql分页查询语句:
select * from 表名 where 列名 limit ?,?
效果图:
(1)界面和业务逻辑未分离,源码下载地址:http://download.csdn.net/detail/tianyejun6/9726582
(2)界面和业务逻辑使用MVC设计模式分离,源码下载地址:http://download.csdn.net/detail/tianyejun6/9727045
启动tomcat服务器首次访问地址:http://localhost:8080/test/Login
0 0
- 四、servlet 分页加载技术
- Servlet分页技术
- Servlet分页技术
- Servlet分页技术
- java servlet分页技术实现
- Servlet+mysql实现分页技术
- servlet 第四讲 笔记 分页技术
- JSP分页技术(jsp+servlet)
- (第6讲)servlet 分页技术
- JavaWeb开发之四:servlet技术
- Servlet技术(四)--Servlet的服务方法抛出异常
- Servlet自学第20讲:分页技术详解
- servlet分页
- Servlet技术的自我理解之三:Servlet运行原理及Servlet的加载实例化
- 20160327servlet学习笔记分页技术三层过滤的sql分页查询
- servlet小总结4----在servlet中显示图片,分页技术等
- Servlet(14)加载文件及会话技术介绍
- 分页加载
- 迎接2017
- 恐龙技术生存体验(五 峰回路转)
- 代理模式与动态代理模式
- 中兴手机权限开启方法3
- 关联式容器映射map练习
- 四、servlet 分页加载技术
- SPOJ - Horace and his primes(素数+二分查找)
- Error: Error parsing D:\new_android\Android SDK\system-images\android-25\android-wear\armeabi-v7a\de
- C++文件练习
- c#中,类的重写中,new和override的区别
- GIS就业参考系列之方向篇——条条大道通罗马
- ffmpeg 不能发送60帧视频问题分析
- 项目实践---字典
- 在使用hibernate进行数据操作时出现错误