skyful

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  16 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks
JSP数据库数据分页显示    [ 日期:2005-05-14 ]   [ 来自:转载 ]

<%--  
功能:JSP数据库操作例程 - 数据分页显示 - JDBC 2.0 - Oracle  
--%>  

<%@ 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 = 2;  

//取得待显示页码  
strPage = request.getParameter(\"page\");  
if(strPage==null){//表明在QueryString中没有page这一个参数,此时显示第一页数据  
  intPage = 1;  
}  
else{//将字符串转换成整型  
  intPage = java.lang.Integer.parseInt(strPage);  
  if(intPage<1) intPage = 1;  
}  

//装载JDBC驱动程序  
java.sql.DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver());  

//设置数据库连接字符串  
strCon = \"jdbc:oracle:thin:@linux:1521:ora4cweb\";  

//连接数据库  
sqlCon = java.sql.DriverManager.getConnection(strCon,\"hzq\",\"hzq\");  

//创建一个可以滚动的只读的SQL语句对象  
sqlStmt = sqlCon.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);  

//准备SQL语句  
strSQL = \"select name,age from test\";  

//执行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=\"jdbc20-oracle.jsp?page=<%=intPage+1%>\">下一页</a><%}%>  <%if(intPage>1){%><a href=\"jdbc20-oracle.jsp?page=<%=intPage-1%>\">上一页</a><%}%>  

</body>  
</html>  

<%  
//关闭结果集  
sqlRst.close();  

//关闭SQL语句对象  
sqlStmt.close();  

//关闭数据库  
sqlCon.close();
posted on 2006-03-20 16:06 氓氓 阅读(940) 评论(2)  编辑  收藏

Feedback

# re: JSP数据库数据分页显示 2006-05-24 10:22 阿有
有没有从上一页获取参数,然后翻页的代码啊,本人出现了问题,解决不了了。且网上也很少这类的代码  回复  更多评论
  

# re: JSP数据库数据分页显示 2006-06-02 16:24 氓氓
public String getPageString() throws Exception
{
String PageString,hrefA,hrefB,hrefS,hrefE,tempSelect;
int Lines_1,i;
Lines_1 = TotalPageCount();
//PageName = "index.jsp";
hrefS = "<a href=" + PageName + "?thePage=1" + PassStr + "><font class=pnF>首页</font></a>";
hrefE = "<a href=" + PageName + "?thePage=" + (Lines_1) + PassStr + "><font class=pnF>未页</font></a>";
if (thePage <= 1)
{
hrefA = "<a disabled><font class=pnF>上一页</font></a>";
}
else
{
hrefA = "<a href=" + PageName + "?thePage=" + (thePage - 1) + PassStr + "><font class=pnF>上一页</font></a>";
}

if (thePage >= Lines_1)
{
hrefB = "<a disabled><font class=pnF>下一页</font></a>";
}
else
{
hrefB = "<a href=" + PageName + "?thePage=" + (thePage + 1) + PassStr + "><font class=pnF>下一页</font></a>";
}

PageString = "<style>.pnF{font-size=10pt;color=#000000;}</style>";
PageString = PageString + "<form action=" + PageName + " target=_self name=Pn>";
PageString = PageString + "<input type=hidden name=PassStr value=" + PassStr + ">";
PageString = PageString + "<Table cellspacing=0 cellpadding=0 width='" + TableWidth + "' align=center>";
PageString = PageString + "<tr><td align=right>";
PageString = PageString + hrefS + "&nbsp;&nbsp;";
PageString = PageString + hrefA + "&nbsp;&nbsp;" + hrefB + "&nbsp;&nbsp;";
PageString = PageString + hrefE + "&nbsp;&nbsp;";
PageString = PageString + "<select style=font:10pt name=thePage class=inputSelect onchange=\"javascript:window.location.href='" + PageName + "?thePage='+this.form.thePage.value+'" + PassStr + "'\">";
for (i=1; i<=Lines_1 ;i++ )
{
if (thePage == i )
{
tempSelect = "selected";
}
else
{
tempSelect = "";
}
PageString = PageString + "<option value=" + i +" "+ tempSelect + ">第" + i + "页</option>";
}

PageString = PageString + "</select>&nbsp;<font class=pnF>共<font color=red>" + Lines_1 + "</font>页&nbsp;共<font color=red>" + RsCount() + "</font>条记录</font>";
PageString = PageString + "</td></tr></Table></form>";
//System.out.println(PageString);
return PageString;

}

如上 PassStr 就是传递得参数,不知道是不是你要的  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: