JSP+JDBC_假分页



<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>分页显示</title>
</head>
<body>
<center>
<h1>人员列表</h1>
<hr><br>
<%
// 进行乱码处理
request.setCharacterEncoding("GB2312");
%>
<%!
final String jspUrl = "list_person.jsp";
%>
<%
// 定义如下分页变量
// 1、定义每页要显示的记录数
int lineSize = 10;
// 2、定义当前页
int currentPage = 1;
// 计算出总页数
int pageSize = 0;
// 总记录数
int allRecorders = 0;
// 加入查询关键字变量
String keyWord = "";
%>
<%
// 接收查询关键字
keyWord = request.getParameter("kw");
// 接收传过来的当前页
try {
currentPage = Integer.parseInt(request.getParameter("cp"));
} catch(Exception e) {
}
%>
<%
final String DBDRIVER = "org.gjt.mm.mysql.Driver";
final String DBURL = "jdbc:mysql://localhost/test";
final String DBUSER = "root";
final String DBPASSWORD = "depravedAngel";
Connection conn = null;
%>
<%
try {
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
String sql = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
if(keyWord == null) {
sql = "SELECT COUNT(*) FROM person";
} else {
sql = "SELECT COUNT(*) FROM person WHERE uid LIKE ? OR name LIKE ?";

}
pstmt = conn.prepareStatement(sql);
if(keyWord != null) {
pstmt.setString(1,"%" + keyWord + "%");
pstmt.setString(2,"%" + keyWord + "%");
}
rs = pstmt.executeQuery();
if(rs.next()){
allRecorders = rs.getInt(1);
}
rs.close();
pstmt.close();

// 计算总页数
pageSize = (allRecorders+lineSize-1)/lineSize;
if(keyWord == null) {
sql = "SELECT id,uid,name,password FROM person";
} else {
sql = "SELECT id,uid,name,password FROM person WHERE uid LIKE ? OR name LIKE ?";
}

pstmt = conn.prepareStatement(sql);
if(keyWord != null) {
pstmt.setString(1,"%" + keyWord + "%");
pstmt.setString(2,"%" + keyWord + "%");
}
rs = pstmt.executeQuery();
%>
<script language="javaScript">
function openPage(curpage)
{
document.spage.cp.value = curpage;
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 %>">
<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 x=1;x<=pageSize;x++){
%>
<option value="<%=x %>" <%=currentPage==x?"selected":"" %>><%=x %></option>
<%
}
%>
</select>

<%
}
%>
</form>

<table border="1" width="80%">
<tr>
<td>编号</td>
<td>登陆名称</td>
<td>姓名</td>
<td>密码</td>
<td colspan="2">操作</td>
</tr>
<%
int i = 0;
for(int x=0; x<(currentPage-1)*lineSize;x++){
rs.next();
}
// 对于输出代码之前要求按显示的页数空出
for(int x=0; x<lineSize;x++){
if (rs.next()) {
i++;
int id = rs.getInt(1);
String uid = rs.getString(2);
String name = rs.getString(3);
String password = rs.getString(4);
%>
<tr>
<td><%=id%></td>
<td><%=uid%></td>
<td><%=name%></td>
<td><%=password%></td>
<td>更新</td>
<td>删除</td>
</tr>
<%
}
}
rs.close();
pstmt.close();
if (i == 0) {
%>
<tr>
<td colspan="6">没有数据!!!</td>
</tr>
<%
}
%>
</table>
<%
} catch (Exception e) {
} finally {
conn.close();
}
%>
</center>
</body>
</html>


数据库脚本:

-- 删除表
DROP TABLE person;
-- 建立person表
CREATE TABLE person
(
-- 生成一个流水号,观察显示的纪录数
id INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
-- 用户的登陆ID
uid VARCHAR(32),
-- 用户的真实姓名
name VARCHAR(32),
-- 用户的登陆密码
password VARCHAR(30)
);

-- 插入测试数据
INSERT INTO person(uid,name,password) VALUES('darkness01','堕落天使01','SKY01');
INSERT INTO person(uid,name,password) VALUES('darkness02','堕落天使02','SKY02');
INSERT INTO person(uid,name,password) VALUES('darkness03','堕落天使03','SKY03');
INSERT INTO person(uid,name,password) VALUES('darkness04','堕落天使04','SKY04');
INSERT INTO person(uid,name,password) VALUES('darkness05','堕落天使05','SKY05');
INSERT INTO person(uid,name,password) VALUES('darkness06','堕落天使06','SKY06');
INSERT INTO person(uid,name,password) VALUES('darkness07','堕落天使07','SKY07');
INSERT INTO person(uid,name,password) VALUES('darkness08','堕落天使08','SKY08');
INSERT INTO person(uid,name,password) VALUES('darkness09','堕落天使09','SKY09');
INSERT INTO person(uid,name,password) VALUES('darkness10','堕落天使10','SKY10');
INSERT INTO person(uid,name,password) VALUES('darkness11','堕落天使11','SKY11');
INSERT INTO person(uid,name,password) VALUES('darkness12','堕落天使12','SKY12');
INSERT INTO person(uid,name,password) VALUES('darkness13','堕落天使13','SKY13');
INSERT INTO person(uid,name,password) VALUES('darkness14','堕落天使14','SKY14');
INSERT INTO person(uid,name,password) VALUES('darkness15','堕落天使15','SKY15');
INSERT INTO person(uid,name,password) VALUES('darkness16','堕落天使16','SKY16');
INSERT INTO person(uid,name,password) VALUES('darkness17','堕落天使17','SKY17');
INSERT INTO person(uid,name,password) VALUES('darkness18','堕落天使18','SKY18');
INSERT INTO person(uid,name,password) VALUES('darkness19','堕落天使19','SKY19');
INSERT INTO person(uid,name,password) VALUES('darkness20','堕落天使20','SKY20');
INSERT INTO person(uid,name,password) VALUES('darkness21','堕落天使21','SKY21');
INSERT INTO person(uid,name,password) VALUES('darkness22','堕落天使22','SKY22');
INSERT INTO person(uid,name,password) VALUES('darkness23','堕落天使23','SKY23');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值