|
<%@ page contentType= "text/HTML;charset=8859_1 " %>
<%
//变量声明
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 = 25;
//取得待显示页码
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( "sun.jdbc.odbc.JdbcOdbcDriver ");
//java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());
//设置数据库连接字符串
strCon = "jdbcdbc:test ";
//连接数据库
sqlCon = java.sql.DriverManager.getConnection(strCon, "ApsuiteUser ", "uwerinfo ");
//创建一个可以滚动的只读的SQL语句对象
//sqlStmt=sqlCon.createStatement();
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
//准备SQL语句
strSQL = "select lsh,files from t_sys ";
//执行SQL语句并获取结果集
sqlRst = sqlStmt.executeQuery(strSQL);
//获取记录总数
sqlRst.last();
intRowCount = sqlRst.getRow();
//记算总页数
intPageCount = (intRowCount+intPageSize-1) / intPageSize;
//调整待显示的页码
if(intPage> intPageCount) intPage = intPageCount;
%>
<html>
<head>
<meta http-equiv= "Content-Type " content= "text/html; charset=gb2312 ">
<title> JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle </title>
</head>
<body>
<table border= "1 " cellspacing= "0 " cellpadding= "0 ">
<tr>
<th> 姓名 </th>
<th> 年龄 </th>
</tr>
<%
if(intPageCount> 0){
//将记录指针定位到待显示页的第一条记录上
sqlRst.absolute((intPage-1) * intPageSize + 1);
//显示数据
i = 0;
while(i <intPageSize && !sqlRst.isAfterLast()){
%>
<tr>
<td> <%=sqlRst.getString(1)%> </td>
<td> <%=sqlRst.getString(2)%> </td>
</tr>
<%
sqlRst.next();
i++;
}
}
%>
</table>
第 <%=intPage%> 页 共 <%=intPageCount%> 页 <%if(intPage <intPageCount){%> <a href= "dbtest.jsp?page= <%=intPage+1%> "> 下一页 </a> <%}%> <%if(intPage> 1){%> <a href= "dbtest.jsp?page= <%=intPage-1%> "> 上一页 </a> <%}%>
</body>
</html>
<%
//关闭结果集
sqlRst.close();
//关闭SQL语句对象
sqlStmt.close();
//关闭数据库
sqlCon.close();
%>
public class pageControl
{
public int curpage ;
public int maxpage ;
public int maxrowcount ;
public int rowsperpage ;
public void calMaxPage()
{
if (this.maxrowcount % this.rowsperpage==0)
{
this.maxpage = this.maxrowcount/this.rowsperpage;
}
else
{
this.maxpage = this.maxrowcount/this.rowsperpage + 1;
}
}
}
jsp中:
pageControl pageCtl=new pageControl();
pageCtl.rowsperpage=10;//每页显示的行数
int pageNo=1;
if (request.getParameter( "page ")!=null)
{
pageNo=Integer.parseInt(request.getParameter( "page "));
}
pageCtl.curpage=pageNo;//当前页
pageCtl.maxrowcount=从数据库中取得的要显示出来的记录数
pageCtl.calMaxPage();//调用方法
<%if(pageCtl.curpage==1){ out.print( " 首页 上一页 "); }else{ %>
<A HREF= " <%=global_usermanage%> ?flag= <%=flag%> &userid1= <%=userid1%> "> 首页 </A> <A HREF= " <%=global_usermanage%> ?page= <%=pageCtl.curpage-1%> &flag= <%=flag%> &userid1= <%=userid1%> "> 上一页 </A>
<%}%>
<%if(pageCtl.curpage==pageCtl.maxpage){ out.print( "下一页 尾页 "); }else{ %>
<A HREF= " <%=global_usermanage%> ?page= <%=pageCtl.curpage+1%> &flag= <%=flag%> &userid1= <%=userid1%> "> 下一页 </A> <A HREF= " <%=global_usermanage%> ?page= <%=pageCtl.maxpage%> &flag= <%=flag%> &userid1= <%=userid1%> "> 尾页 </A>
<%}%>
每页 <%=pageCtl.rowsperpage%> 行 共 <%=pageCtl.maxrowcount%> 行 第 <%=pageCtl.curpage%> 页
共 <%=pageCtl.maxpage%> 页
//over |
|