<%@page import="java.io.IOException"%>
<%@page import="java.util.Properties"%>
<%@page import="res.HttpClientVisitTest"%>
<%@page import="java.io.InputStream"%>
<%@ page contentType="text/html; charset=utf-8" %> <%-- 设置页面编码格式 --%>
<%@ page import="java.sql.*" %> <%-- 导入 SQL 包 --%>
<html>
<head>
<title>分页显示</title>
<style type="text/css">
tab {
border: 1px dotted #aaa;
}
td {
border-top: 1px dotted #aaa;
}
</style>
</head>
<body>
<center>
<h1>服务器请求信息列表</h1>
<hr />
<br />
<%
request.setCharacterEncoding("utf-8"); // 统一编码格式为 GBK
%>
<%!
final String jspUrl = "fenye.jsp";
%>
<%
// 真分页:只是取出需要的数据并显示在页面上,是从程序的分离的角度划分的,分散了程序的负载,提升了程序的整体性能,性能较高。
// 分页实现由业务程序和数据库分页函数协调配合共同完成。
// 定义如下分页变量
int lineSize = 10; // 定义每页要显示的记录数
int currentPage = 1; // 定义当前是第几页
int pageSize = 0; // 总页数 = 总记录数 ÷ 每页显示的记录数
int allRecorders = 27;
String keyWord = null; // 查询关键字
%>
<%
keyWord = request.getParameter("kw"); // 接收用户输入的关键字
// 接收传过来的当前页
try
{
currentPage = Integer.parseInt(request.getParameter("cp"));
}
catch(Exception e){}
%>
<%
//本机服务器连接
//final String DBDRIVER = "com.mysql.jdbc.Driver"; // MySQL 驱动类
//final String DBURL = "jdbc:mysql://localhost:3306/test1?useUnicode=true&characterEncoding=utf-8"; // 数据库地址
//final String DBUSER = "root"; // 连接数据库的用户名
//final String DBPASSWORD = "root"; // 连接数据库的密码
//服务器数据库
final String DBDRIVER = "com.mysql.jdbc.Driver"; // MySQL 驱动类
Properties prop = null;
InputStream is = HttpClientVisitTest.class
.getResourceAsStream("//config//config.properties");
prop = new Properties();
try {
prop.load(is);
} catch (IOException e) {
e.printStackTrace();
}
//final String DBURL = "jdbc:mysql://218.206.179.114:3306/res?useUnicode=true&characterEncoding=utf-8"; // 数据库地址
final String DBURL = prop.getProperty("url"); // 数据库地址
final String DBUSER = prop.getProperty("username"); // 连接数据库的用户名
final String DBPASSWORD = prop.getProperty("password"); // 连接数据库的密码
Connection conn = null; // 建立与数据库连接的对象
%>
<%
try
{
Class.forName(DBDRIVER); // 注册 MySQL 驱动
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD); // URL地址,注册用户名,用户名密码
PreparedStatement pstmt = null; // 预处理
String sql = null;
if(keyWord == null || "".equals(keyWord))
// if(true)
{
// 如果为空,则没有查询,表示查询全部
sql = "SELECT COUNT(id) FROM res"; // 构建 SQL 语句s
}
else
{
sql = "SELECT COUNT(id) FROM res WHERE userid LIKE ? OR phone LIKE ?"; // 构建 SQL 语句
}
pstmt = conn.prepareStatement(sql) ; // 加载 SQL 语句到
// 如果有查询关键字,则进行设置
if(!(keyWord == null || "".equals(keyWord)))
{
pstmt.setString(1, "%" + keyWord + "%");
pstmt.setString(2, "%" + keyWord + "%");
}
ResultSet rs = pstmt.executeQuery(); // 执行 SQL 语句
if(rs.next())
{
allRecorders = rs.getInt(1); // 取得表中总记录数
}
rs.close(); // 关闭结果集
pstmt.close(); // 关闭预处理
pageSize = (allRecorders + lineSize - 1) / lineSize; // 计算总页数
if(keyWord == null || "".equals(keyWord))
//if(true)
{
// // 如果为空,则没有查询,表示查询全部
sql = "SELECT id,sessionid, userid, phone,email,status,resTime FROM res limit " + (currentPage - 1) * lineSize + "," + lineSize;
}
else
{
sql = "SELECT id,sessionid, userid, phone,email,status,resTime FROM res WHERE userid LIKE ? OR phone LIKE ? LIMIT " + (currentPage - 1) * lineSize + "," + lineSize;
}
pstmt = conn.prepareStatement(sql) ; // 加载 SQL 语句到
// 如果有查询关键字,则进行设置
if(!(keyWord == null || "".equals(keyWord)))
{
pstmt.setString(1, "%" + keyWord + "%");
pstmt.setString(2, "%" + keyWord + "%");
}
rs = pstmt.executeQuery(); // 执行 SQL 语句
%>
<script language="javaScript">
function openPage(curPage)
{
document.spage.cp.value = curPage ;
// alert(cupage) ;
document.spage.submit() ;
}
function selOpenPage()
{
document.spage.cp.value = document.spage.selpage.value;
document.spage.submit();
}
</script>
<form name="spage" action="<%= jspUrl %>">
输入查询的关键字:<input type="text" name="kw" value="<%= keyWord == null ? "" : keyWord %>" />
<input type="submit" value="查询" />
<br /><br />
<%
if(allRecorders > 0)
{
%>
<input type="button" value="首页" onClick="openPage(1)" <%= currentPage == 1 ? "disabled" : "" %> />
<input type="button" value="上一页" onClick="openPage(<%= currentPage - 1 %>)" <%= currentPage == 1 ? "disabled" : "" %> />
<input type="button" value="下一页" onClick="openPage(<%= currentPage + 1 %>)" <%= currentPage == pageSize ? "disabled" : "" %> />
<input type="button" value="尾页" onClick="openPage(<%= pageSize %>)" <%= currentPage == pageSize ? "disabled" : "" %> />
<input type="hidden" name="cp" value="" />
<font color="red" size="5"><%= currentPage %></font>
/
<font color="red" size="5"><%= pageSize %></font>
跳转到
<select name="selpage" onChange="selOpenPage()">
<%
for(int j = 1; j <= pageSize; j++)
{
%>
<option value="<%= j %>" <%= currentPage == j ? "selected" : "" %>> <%= j %> </option>
<%
}
%>
</select>
页
<%
}
%>
</form>
<table width="80%" cellpadding="1" cellspacing="0">
<tr align="center">
<th>编号</th>
<th>用户ID</th>
<th>用户名</th>
<th>电话</th>
<th>Email</th>
<th>请求状态</th>
<th>请求时间</th>
<!-- <th colspan="2">操作</th>-->
</tr>
<%
int i = 0; // 判断是否有数据库的标记
while(rs.next())
{
i++;
int id = rs.getInt(1);
String sessionid=rs.getString(2);
if("".equals(sessionid) || null == sessionid){
sessionid="无值";
}
String userid = rs.getString(3);
if("".equals(userid) || null == userid){
userid="无值";
}
String phone = rs.getString(4);
if("".equals(phone) || null == phone){
phone="无值";
}
String email = rs.getString(5);
if("".equals(email) || null == email){
email="无值";
}
String status = rs.getString(6);
if("".equals(status) || null == status){
status="无值";
}
Date resTime = rs.getDate(7);
%>
<tr align="center">
<td><%= id %></td>
<td><%= sessionid %></td>
<td><%= userid %></td>
<td><%= phone %></td>
<td><%= email %></td>
<td><%= status %></td>
<td><%= resTime %></td>
<!-- <td>更新</td>
<td>删除</td> -->
</tr>
<%
}
rs.close(); // 关闭结果集
pstmt.close(); // 关闭预处理
if(i == 0)
{
%>
<tr align="center">
<td colspan="6">不存在数据! </td>
</tr>
<%
}
%>
<table>
<%
}
catch(Exception e)
{
out.println(e);
%>
<h2>程序出错啦!</h2>
<%
}
finally
{
conn.close();
}
%>
</center>
</body>
</html>
分享到:
相关推荐
jdbc分页查询,利用mysql的limit实现分页查询。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。...
项目主体结构是dao+db+filter+pojo+servlet, 使用技术Servlet转发,代码中有注释帮助学者理解,数据库为MySQL资源...实现的数据库内容分页,查询分页,对初学者难点是根据get请求的中的url地址进行查询后的分页效果。
为了实现分页查询,我们可以创建一个专门的Page类,包含当前页数、每页记录数、总记录数等属性,以及获取和设置这些属性的方法。 接下来,我们探讨Oracle数据库中的分页查询。Oracle提供了ROWNUM伪列,可以用来限制...
在JavaWeb开发中,"JavaWeb+JSP+Servlet+JDBC分页查询和查询后分页界面优化"是一个常见的需求,特别是在构建大型的、数据密集型的学生管理系统中。这个主题涵盖了许多关键知识点,让我们逐一深入探讨。 首先,...
以下是一个简单的Java JDBC分页实现步骤: 1. **建立数据库连接**:首先,我们需要使用`DriverManager.getConnection()`方法来建立与数据库的连接。确保已经添加了相应的JDBC驱动,并正确配置了数据库URL、用户名和...
在给定的源码中,可能包含了一个封装好的分页查询工具类,这个类通常会有以下方法: - `queryByPage(Connection conn, String sql, int pageNum, int pageSize)`:接收数据库连接、基础SQL语句以及分页参数,返回...
Java JDBC 分页查询是数据库操作中的常见需求,用于在大量数据中实现高效的页面导航。在这个小例子中,展示了如何使用JDBC进行分页查询。Java JDBC 提供了两种主要的分页方式:一种是通过 `absolute` 方法,另一种是...
一个用于支持JDBC分页的工具包,提供了一些封装好的JDBC操作方法,方便开发人员进行开发,提供了此工具包的API文档
本篇将详细介绍如何基于原生的MySQL JDBC实现一个简单的分页组件,这对于初学者理解数据库操作和分页原理非常有帮助。 1. **JDBC基础**: JDBC是Java访问数据库的标准接口,它提供了连接数据库、执行SQL语句、处理...
在“JDBCPager”这个例子中,可能包含了一个名为`Pager.java`的类,该类封装了上述步骤,提供了一个分页接口供JSP页面调用。它可能有方法如`getPage(int pageNo, int pageSize)`,返回指定页码的数据,并通过参数...
首先通过执行一个统计查询语句获取总的记录数,为后续的分页提供依据。 - **步骤2:设置页面信息**。根据总记录数计算出总页数等相关信息,并设置当前页面的起始索引和结束索引。 - **步骤3:查询当前页数据**。使用...
java jdbc 分页工具类,以及返回集合数据的封装, private int limit = 10;//每页的个数 /** * 当前页 */ private int page; // /** * 总行数 */ private int totalRows; // /** * 总页数 */ private ...
**JSP与JDBC分页实现详解** ...总的来说,JSP和JDBC的分页实现涉及到SQL查询、数据库连接管理、Java集合的使用以及前端页面的交互。通过熟练掌握这些技能,开发者可以构建出高效、友好的数据展示界面。
【标题】"jdbc+serlvet分页查询代码"涉及的知识点主要集中在Java数据库连接(JDBC)和Servlet两个核心技术上,它们是Web应用程序中处理数据和交互的关键组件。 **JDBC(Java Database Connectivity)** JDBC是Java...
回到给定的压缩包文件"KevinbTagApp",这很可能是一个包含Java分页标签实现的项目。可能包含以下组件: 1. `PaginationTag.java`: 分页标签类,实现了自定义标签的逻辑。 2. `web.xml`: 应用的部署描述符,配置了...
在数据库操作中,分页查询是非常常见且重要的一个功能。对于大型应用而言,一次性加载大量数据不仅会消耗过多资源,还可能导致用户体验下降。因此,合理地进行分页处理显得尤为重要。本篇文章将通过具体的例子来介绍...
在本教程中,我们将深入探讨如何使用JDBC连接Oracle数据库,并实现数据的分页查询,以提高数据提取效率。 首先,确保你已经安装了Oracle数据库驱动,通常以ojdbc.jar的形式存在。将其添加到项目的类路径中,以便...
在这个分页应用中,JDBC用于建立与数据库的连接,执行SQL语句(如SELECT、INSERT、UPDATE、DELETE),并处理查询结果。 3. **Servlet**:Servlet是Java Web应用中的服务器端组件,用于接收和响应客户端请求。在MVC...
以下是一个简单的分页实现步骤: 1. **连接数据库**:使用`Class.forName()`加载JDBC驱动,然后通过`DriverManager.getConnection()`建立数据库连接。 2. **准备SQL语句**:根据用户请求的页码和每页大小,计算出...
`Page.java`可能代表一个分页模型类,它通常包含当前页数、每页显示条数、总页数、总记录数等属性,以及用于计算和管理分页的逻辑方法。例如,`getPageStart()`方法计算出从数据库获取数据的起始位置,`getPageEnd()...