sql.jsp:
<%@ page contentType="text/html;charset=utf-8" %>
<%@ page import="java.sql.*,java.lang.String,java.util.*" %>
<HTML>
<head>
<title>
分頁顯示</title>
</head>
<BODY>
<%!String xh; %>
<%!int i;%>
<%!int pageSize=6;%><!--每頁顯示的記錄條數爲3 -->
<%!int rowCount=0;%>
<%!int pageCurrent;%><!--當前頁數爲“pageCurrent”-->
<%!int pageCount;%><!--總頁數爲pageCount-->
<%!Connection con=null;%>
<%!Statement sql=null;%>
<%!ResultSet rs=null;%>
<%
/**下面這個數據庫連接,的主要目的是求出總的記錄數rowCount*/
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","WJZwjz1029");
sql=con.createStatement();
rs=sql.executeQuery("select * from emp");
out.print(rowCount);
rowCount=0;//注意這裏的清0一定都不能少,否則你一點超鏈接,所有的記錄數又重加一次
while(rs.next())
{
rowCount++;
}
rs.close();
sql.close();
con.close();
}catch(Exception e)
{
out.print(e);
}
%>
<%
out.print("<Table Border>");
out.print("<TR bgcolor='#999999'>");//table屬性
out.print("<TH width=100>"+"ssssss");//標題,可以更改
out.print("<TH width=50>"+"Ename");
out.print("</TR>");
%>
<%
try{Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{
con=DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","WJZwjz1029");
sql=con.createStatement();
rs=sql.executeQuery("select * from emp");
String strPage=request.getParameter("page");//"page爲連接時傳過來參數"
/**
第一次運行該頁面時page必爲null,因爲參數未傳過來,那麼就將pageCurrent的值設爲1
也就表示第一頁
*/
if(strPage==null)
{
pageCurrent=1;
}
else{
pageCurrent=Integer.parseInt(strPage);
if(pageCurrent<1)
pageCurrent=1;
}
/**
下面兩句的目的是將遊標定位到要顯示頁的前一頁的最後一條記錄
*/
for(i=1;i<=(pageCurrent-1)*pageSize;i++)
rs.next();
/**
下面的一個for循環的作用是將要顯示頁的記錄一條條的取出來放到table中
*/
for(i=1;i<=pageSize;i++)
{
if(i%2==0)//顏色改變
out.print("<TR bgcolor='#00FFFF'>");
else
out.print("<TR bgcolor='#FFFFFF'>");
if(rs.next())
{
int n=rs.getInt(1);//int 類型
out.print("<TD >"+n+"</TD>");
String e=rs.getString(2);//string類型
out.print("<TD >"+e+"</TD>");
out.print("</TR>") ;//行結束
}
}
out.print("</Table>");
out.print("conn自動提交:"+con.getAutoCommit()+"<br>");//此語句測試conn自動提交沒有,如果沒有,就要在executeUpdate()後加上conn.commit();
//關閉數據庫
rs.close();
sql.close();
con.close();
pageCount=(int)(rowCount/pageSize);
if(pageSize*pageCount<rowCount)
{
pageCount++;
}
out.print("共"+pageCount+"頁");
if(pageCount>1)
{
for(i=1;i<=pageCount;i++)
out.print("<a href='sql.jsp?page="+i+"'>"+i+" </a>"); //這裏易出錯
/**
out.print("<a href='sql.jsp?page='"+i+"'>"+i+"</a>");這裏錯誤就在page等號不要有“'”
在雙引號裏面的雙引號就變爲了單引號了。
*/
}
out.print(" 第"+pageCurrent+"頁");
}
catch(Exception e)
{
out.print(e);
}
%>
</body>
</html>