jsp直接訪問數據庫的代碼

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>

發佈了24 篇原創文章 · 獲贊 11 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章