JSP+JDBC实现的分页操作

<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.sql.*" %>
<html>
<head><title>www.xiongsheng.com,熊胜的主页</title>
<style type="text/css">
.STYLE1 {font-size: 16px}
.STYLE2 {font-size: 20px; font-weight: bold; }
</style>
</head>
<script language="javascript">
function changeColor(obj,color){
obj.bgColor = color ;
}
</script>
<body>
<%!
public static final String URL = "emp_list_true.jsp" ;
%>
<%!
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
public static final String DBURL = "jdbc:oracle:thin: @xiongsheng :1521:xiongsheng";
public static final String DBUSER = "xiong";
public static final String DBPASSWORD = "xs1990721";
%>
<%
Connection conn = null;
PreparedStatement pst = null;
ResultSet rs = null;
%>
<%
int currentPage = 1;
int lineSize = 5;
int allRecorders = 0;
int pageSize = 1;
int lsData[] = {1,3,5,30,50,100};
%>
<%
try{
currentPage = Integer.parseInt(request.getParameter("cp"));
} catch(Exception e) {}
try{
lineSize = Integer.parseInt(request.getParameter("ls"));
} catch(Exception e) {}
%>
<%
Class.forName(DBDRIVER);
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
String sql = "SELECT COUNT(empno) FROM emp" ;
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
if(rs.next()){
allRecorders = rs.getInt(1);
}
%>
<center> 
<h1><font color="red">雇员信息列表</font></h1>
<script language="javascript">
function go(num){
document.getElementById("cp").value = num;
document.spform.submit();
}
</script>
<%
pageSize = (allRecorders + lineSize -1) / lineSize ;
%>
<%
sql = "SELECT * FROM ( " + 
" SELECT empno,ename,job,hiredate,sal,comm,ROWNUM rn " +
" FROM emp WHERE ROWNUM<=? ORDER BY empno) temp " + 
" WHERE temp.rn>? " ;
pst = conn.prepareStatement(sql) ;
pst.setInt(1,currentPage * lineSize) ;
pst.setInt(2,(currentPage-1) * lineSize) ;
rs = pst.executeQuery() ;
%>


<TABLE BORDER="1" cellpadding="5" cellspacing="0" bgcolor="F2F2F2" width="100%">
<TR onMouseOver="changeColor(this,'blue')" onMouseOut="changeColor(this,'F2F2F2')">
<td align="center" valign="middle"><span class="STYLE2">编号</span></td>
<td align="center" valign="middle"><span class="STYLE2">姓名</span></td>
<td align="center" valign="middle"><span class="STYLE2">职位</span></td>
<td align="center" valign="middle"><span class="STYLE2">雇佣日期</span></td>
<td align="center" valign="middle"><span class="STYLE2">工资</span></td>
<td align="center" valign="middle"><span class="STYLE2">奖金</span></td>
</TR>
<%
while(rs.next()){
int empno = rs.getInt(1) ;
String ename = rs.getString(2) ;
String job = rs.getString(3) ;
Date hiredate = rs.getDate(4) ;
double sal = rs.getDouble(5) ;
double comm = rs.getDouble(6) ;
%>
<TR onMouseOver="changeColor(this,'red')" onMouseOut="changeColor(this,'F2F2F2')">
<td align="center" valign="middle"><span class="STYLE1"><%=empno%></span></td>
<td align="center" valign="middle"><span class="STYLE1"><%=ename%></span></td>
<td align="center" valign="middle"><span class="STYLE1"><%=job%></span></td>
<td align="center" valign="middle"><span class="STYLE1"><%=hiredate%></span></td>
<td align="center" valign="middle"><span class="STYLE1"><%=sal%></span></td>
<td align="center" valign="middle"><span class="STYLE1"><%=comm%></span></td>
</TR>
<%
}
%>
</table>
<form name="spform" action="<%=URL%>" method="post">
<input type="button" value="首页" οnclick="go(1)">
<input type="button" value="上一页" οnclick="go(<%=currentPage-1%>)" >
<input type="button" value="下一页" οnclick="go(<%=currentPage+1%>)">
<input type="button" value="尾页" οnclick="go(<%=pageSize%>)">
跳转到第<select name="selcp" οnchange="go(this.value)">
<%
for(int x=1;x<=pageSize;x++){
%>
<option value="<%=x%>" <%=x==currentPage?"SELECTED":""%>><%=x%></option>
<%
}
%>
</select>页
每页显示
<select name="ls" οnchange="go(1)">
<%
for(int x=0;x<lsData.length;x++){
%>
<option value="<%=lsData[x]%>" <%=lsData[x]==lineSize?"SELECTED":""%>><%=lsData[x]%></option>
<%
}
%>
</select>

<input type="hidden" name="cp" value="1">
</form>
<%
    rs.close();
pst.close();
conn.close() ;
%>
</center>
</body>

</html>

转载于:https://my.oschina.net/u/1259702/blog/168953

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值