文档章节

JSP+JDBC_真分页(基于MySql数据库分页)

暗之幻影
 暗之幻影
发布于 2014/12/17 19:31
字数 547
阅读 21
收藏 0
<%@ 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 || "".equals(keyWord)) {
						sql = "SELECT COUNT(*) FROM person";
					} else {
						sql = "SELECT COUNT(*) FROM person WHERE uid LIKE ? OR name LIKE ?";
						
					}
					pstmt = conn.prepareStatement(sql);
					if(!(keyWord == null || "".equals(keyWord))) {
						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 || "".equals(keyWord)) {
      					sql = "SELECT id,uid,name,password FROM person limit "
      					      + (currentPage-1)*lineSize + "," + lineSize;
      				} else {
						sql = "SELECT id,uid,name,password FROM person WHERE uid LIKE ? OR name LIKE ? limit "
      					      + (currentPage-1)*lineSize + "," + lineSize;
					}
					 
					pstmt = conn.prepareStatement(sql);
					if(!(keyWord == null || "".equals(keyWord))) {
						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;
					 
					// 对于输出代码之前要求按显示的页数空出
					while(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>

© 著作权归作者所有

上一篇: 分页组件实现
下一篇: JSP+JDBC_假分页
暗之幻影
粉丝 20
博文 377
码字总数 71245
作品 0
南京
高级程序员
私信 提问
基于Mysql的通用分页存储过程

原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明。否则将追究法律责任。http://wenlujun.blog.51cto.com/336737/71819   前面“结合JSTL用配置来完成基...

Yamazaki
2012/07/05
11
0
数据分页资料汇总

1.数据库分页Java实现(http://www.cnblogs.com/ITtangtang/archive/2012/04/21/2462385.html) 2.Java分页代码的实现(http://www.open-open.com/lib/view/open1346772322162.html) 3. java分页......

IT追寻者
2016/08/13
104
0
MySQL查询分页

数据库查询分页: Pagination //分页信息,请求内容包括{pageSize,pageNo,totalCount} PageData{Pagination, List} //返回信息 通过Pagination 计算出 begin 和 end, begin=pagination.getb...

满小茂
2016/01/18
74
0
基于SSM和jstl的分页实现教程

以前用jsp和原生的JDBC实现过分页,现在一看,不仅代码冗余,而且可读性差,今天分享一种简洁的实现方式,我用起来是很方便的。 一.概述 主要思想就是建一个Page类,所有跟分页有关的参数都放...

lovellypop的博客
2017/12/12
0
0
《牛腩新闻发布系统》—真、假分页

【前沿】 小编在学习的过程中,学习的过程中听到视频中老师简单介绍了一下真、假分页的区别,下面小编就这个知识点进行一下总结。 【内容】 真分页:由程序控制,每一次只返回一页大小的数据...

wxb141001yxx
2018/03/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

kail 树莓派中文字体设置

1修改源信息 vi /etc/apt/sources.list 将原有源信息注释,替换为以下任意源信息 #中科大deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free contribdeb-src http://mirr...

飞翔的白云
2分钟前
1
0
关于[Warning] IPv4 forwarding is disabled. Networking will not work的报错处理

在Linux虚拟机中操作Docker ,构建Docker镜像时出现报错 \[Warning\] IPv4 forwarding is disabled. Networking will not work 处理办法: 修改/etc/sysctl.conf文件,添加 net.ipv4.ip_fo...

芥末无敌
3分钟前
1
0
Redis

red

天空飘来五个字儿
4分钟前
2
0
Python学习笔记--传值和传地址

写了下面四个函数: def ChangeInt(num): #改变整数为-1 num = -1a = 1ChangeInt(a)print(a)#-------------------------------------def ChangeList1(ls, index): #改变...

myctrd
5分钟前
1
0
人脸识别技术开发功能,人脸识别二次开发

人脸识别系统是针对机关单位的实际情况,基于人脸识别技术开发的机关、企业职员考勤、门禁、食堂餐饮、停车等信息管理系统。实现“一张笑脸,通行单位”的功能。人脸识别系统使用先进的人脸识...

非思丸智能FaceTo
5分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部