这个是用last(),getRow()获取结果集记录数的,希望改成用sql语句获取记录数的,小弟试了几次都有异常,希望大家帮下啊
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="ISO-8859-1"%>
<%
int i;
Connection conn;
Statement stmt;
Statement stmts;
ResultSet rs;
ResultSet rss;
int pageSize=5;
int rowCount=107;
int pageCount;
int intPage;
String strPage=request.getParameter("page");
if(strPage==null){
intPage=1;
}
else{
intPage=Integer.parseInt(strPage);
}
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:OCP","hr","ocp");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//stmts=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery("select first_name from employees");
//rss=stmt.executeQuery("select count(*)from employees" );
rs.last();
rowCount=rs.getRow();
pageCount=(rowCount+pageSize-1)/pageSize;
if(intPage>pageCount)intPage=pageCount;
%>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<body topmargin="0"leftmargin="0"><table width="100%"><tr><td>
intPage<%=intPage %>/<%=pageCount%>page <%=pageSize %>row/page
</td></tr></table>
<table width=100%>
<tr>
<td width=50%>firstname</td>
</tr>
<%
if(pageCount>0){
rs.absolute((intPage-1)*pageSize+1);
i=0;
while(i<pageSize&&!rs.isAfterLast()){
String name=rs.getString(1);
%>
<tr>
<td width=50%><%=name%></td>
</tr>
<%
rs.next();
i++;
}
} %>
</table>
<%if(intPage>0){%>
<a href="DividePage.jsp?page=<%=intPage-1%>">lastpage</a>
<%}%>
<%if(intPage<pageCount)
{%>
<a href="DividePage.jsp?page=<%=intPage+1%>">nextpage</a>
<%}%>
</body>
</html>
<%
rs.close();
stmt.close();
conn.close();
%>
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="ISO-8859-1"%>
<%
int i;
Connection conn;
Statement stmt;
Statement stmts;
ResultSet rs;
ResultSet rss;
int pageSize=5;
int rowCount=107;
int pageCount;
int intPage;
String strPage=request.getParameter("page");
if(strPage==null){
intPage=1;
}
else{
intPage=Integer.parseInt(strPage);
}
Class.forName("oracle.jdbc.driver.OracleDriver");
conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:OCP","hr","ocp");
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
//stmts=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery("select first_name from employees");
//rss=stmt.executeQuery("select count(*)from employees" );
rs.last();
rowCount=rs.getRow();
pageCount=(rowCount+pageSize-1)/pageSize;
if(intPage>pageCount)intPage=pageCount;
%>
<html>
<head>
<meta http-equiv="Content-Type"content="text/html;charset=gb2312">
</head>
<body topmargin="0"leftmargin="0"><table width="100%"><tr><td>
intPage<%=intPage %>/<%=pageCount%>page <%=pageSize %>row/page
</td></tr></table>
<table width=100%>
<tr>
<td width=50%>firstname</td>
</tr>
<%
if(pageCount>0){
rs.absolute((intPage-1)*pageSize+1);
i=0;
while(i<pageSize&&!rs.isAfterLast()){
String name=rs.getString(1);
%>
<tr>
<td width=50%><%=name%></td>
</tr>
<%
rs.next();
i++;
}
} %>
</table>
<%if(intPage>0){%>
<a href="DividePage.jsp?page=<%=intPage-1%>">lastpage</a>
<%}%>
<%if(intPage<pageCount)
{%>
<a href="DividePage.jsp?page=<%=intPage+1%>">nextpage</a>
<%}%>
</body>
</html>
<%
rs.close();
stmt.close();
conn.close();
%>
int maxrow=0;
if(rs.next())
{
maxrow=rs.getInt("num");
return maxrow;
}
<%@ page contentType="text/html;charset=gb2312"%>
<%@ page import="java.sql.*"%>
<html>
<head>
<title>分页显示</title>
</head>
<body>
<center>
<h1>人员列表</h1>
<hr>
<br>
<%!
final String jspUrl = "list_person_false_05.jsp" ;
%>
<%
// 定义如下分页变量
// 1、定义没页要显示的记录数
int lineSize = 10 ;
// 2、定义一个当前是第几页
int currentPage = 1 ;
// 计算出总页数
int pageSize = 0 ;
// 总记录数 / 每页显示的记录数
int allRecorders = 30 ;
%>
<%
// 接收传过来的当前页
try
{
currentPage = Integer.parseInt(request.getParameter("cp")) ;
}
catch(Exception e)
{}
%>
<%
final String DBDRIVER = "org.gjt.mm.mysql.Driver" ;
final String DBURL = "jdbc:mysql://localhost/mldn" ;
final String DBUSER = "root" ;
final String DBPASSWORD = "mysqladmin" ;
Connection conn = null ;
%>
<%
try
{
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
PreparedStatement pstmt = null ;
String sql = "SELECT COUNT(id) from person" ;
pstmt = conn.prepareStatement(sql) ;
ResultSet rs = pstmt.executeQuery() ;
if(rs.next())
{
allRecorders = rs.getInt(1) ;
}
rs.close() ;
pstmt.close() ; // 计算总页数
pageSize = (allRecorders+lineSize-1)/lineSize ; sql = "SELECT id,uid,name,password FROM person" ;
pstmt = conn.prepareStatement(sql) ;
rs = pstmt.executeQuery() ;
%>
<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="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 userid = rs.getString(2) ;
String name = rs.getString(3) ;
String password = rs.getString(4) ;
%>
<tr>
<td><%=id%></td>
<td><%=userid%></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)
{
%>
<h2>系统出错!!!</h2>
<%
}
finally
{
conn.close() ;
}
%>
</center>
</body>
</html>
楼主参考一下吧
<%@ page contentType="text/html;charset=GBK"%>
<%@ page language="java" import="java.sql.*"%> <script language="javascript">
function newwin(url) {
var
newwin=window.open(url,"newwin","toolbar=no,location=no,directories=no,status=no,
menubar=no,scrollbars=yes,resizable=yes,width=600,height=450");
newwin.focus();
return false;
}
</script>
<script LANGUAGE="javascript">
function onclick1()
{
var page = document.form1.page.value
sendRequest('Servelet/PageServelet?page='+page); //发送请求的页面
}
function sendRequest(url) {
alert("---7---");
createXMLHttpRequest();
XMLHttpReq.open("GET", url, true);
XMLHttpReq.send(null);
XMLHttpReq.onreadystatechange = processResponsepage;
}
function createXMLHttpRequest(){
if(window.XMLHttpRequest) {
XMLHttpReq = new XMLHttpRequest();
}else if (window.ActiveXObject) {
try {
XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
}
function processResponsepage(){
if(XMLHttpReq.readyState==4){//服务器已返回信息
alert("---4---");
if(XMLHttpReq.status==200){
alert("---8---");
var page = XMLHttpReq.responseXML.getElementsByTagName("page")[0].firstChild.data;
window.open('index.jsp');
}
}
}
</script>
<%
//变量声明
java.sql.Connection sqlCon; //数据库连接对象
java.sql.Statement sqlStmt; //SQL语句对象
java.sql.ResultSet sqlRst; //结果集对象
java.lang.String strCon; //数据库连接字符串
java.lang.String strSQL; //SQL语句
int intPageSize; //一页显示的记录数
int intRowCount; //记录总数
int intPageCount; //总页数
int intPage ; //待显示页码
java.lang.String strPage;
int i;
//设置一页显示的记录数
intPageSize = 6;
//取得待显示页码
strPage = request.getParameter("page");
if (strPage == null) {//表明在QueryString中没有page这一个参数,此时显示第一页数据
intPage = 1;
} else {//将字符串转换成整型
intPage = java.lang.Integer.parseInt(strPage);
if (intPage < 1){
intPage = 1;
}
} //装载JDBC驱动程序
Class.forName("oracle.jdbc.driver.OracleDriver");
//设置数据库连接字符串
strCon = "jdbc:oracle:thin:@localhost:1521:zhoulin";
//连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon, "zhoulin",
"zhoulin");
//创建一个可以滚动的只读的SQL语句对象
sqlStmt = sqlCon.createStatement(
java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,
java.sql.ResultSet.CONCUR_READ_ONLY);//准备SQL语句
strSQL = "select id,names from students order by id desc";
//执行SQL语句并获取结果集
sqlRst = sqlStmt.executeQuery(strSQL);
//获取记录总数
sqlRst.last();//光标在最后一行
intRowCount = sqlRst.getRow();//获得当前行号
//记算总页数 =(当前行号+每页定义显示的记录数-1)/每页定义显示的记录数
intPageCount = (intRowCount + intPageSize - 1) / intPageSize;
//调整待显示的页码
if (intPage > intPageCount) {
intPage = intPageCount;
}
%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>分页使用</title>
</head>
<body>
<form method="POST" action="pagefrist.jsp" name = "form1">
第
<%=intPage%>
页 共
<%=intPageCount%>
页 <%
if (intPage < intPageCount) {
%>
<a href='pagefrist.jsp?page=<%=intPage + 1%>'>下一页 </a>
<%
}
%>
<%
if (intPage > 1) {
%>
<a href="pagefrist.jsp?page=<%=intPage - 1%>"> 上一页</a>
<%
}
%>
转到第:
<input type="text" name="page" size="8">
页
<span><input type='button' onClick = "onclick1()" value='GO' name='cndok'> </span>
</form>
<table border="1" cellspacing="0" cellpadding="0">
<tr>
<th width='50%'>
ID
</th>
<th width='50%'>
用户名
</th>
</tr>
<%
if (intPageCount > 0) {
//将记录指针定位到待显示页的第一条记录上 (怎么使用的)
sqlRst.absolute((intPage - 1) * intPageSize + 1);
//显示数据
i = 0;
String user_id, user_name;
while (i < intPageSize && !sqlRst.isAfterLast()) {
user_id = sqlRst.getString(1);
user_name = sqlRst.getString(2);
%>
<tr>
<td>
<%=user_id%>
</td>
<td>
<%=user_name%>
</td>
</tr>
<%
sqlRst.next();
i++;
}
}
%>
</table>
</body>
</html>
<%
//关闭结果集
sqlRst.close();
//关闭SQL语句对象
sqlStmt.close();
//关闭数据库
sqlCon.close();
%>
用sql
select count(1)from table_name;
rs.absolute((intPage-1)*pageSize+1);
就是这句