這章是接着前面的,作爲補充數據庫操作的例子呵呵供大家參考。
(4)分頁顯示記錄
showByPage.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<%! int pageSize=3; //每頁顯示的記錄數。
int pageCount=0; //分頁後的總頁數。
%>
<%-- 客戶通過表單提交欲要顯示的頁碼數--%>
<FORM action="" method=get >
輸入頁碼數<Input Type=text name=showPage size=4 >
<Input Type=submit name=g value=提交>
</FORM>
<% Connection con;
Statement sql;
ResultSet rs;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try { con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
sql=
con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
//返回可滾動的結果集:
rs=sql.executeQuery("SELECT * FROM students");
//將遊標移動到最後一行:
rs.last();
//獲取最後一行的行號:
int lastRow=rs.getRow();
//計算分頁後的總頁數:
pageCount=(lastRow%pageSize==0)?(lastRow/pageSize):(lastRow/pageSize+1);
//當前顯示的初始頁數:
int showPage=1;
//告知客戶總頁數:
%>
<P> 共有<%=pageCount%>頁
<BR>每頁顯示<%=pageSize%>條記錄.
<% //獲取客戶想要顯示的頁數:
String integer=request.getParameter("showPage");
if(integer==null)
{ integer="1";
}
try {showPage=Integer.parseInt(integer);
}
catch(NumberFormatException e)
{showPage=1;
}
if(showPage<=1)
{showPage=1;
}
if(showPage>=pageCount)
{showPage=pageCount;
}
%>
<BR>目前顯示第<%=showPage%>頁
<% //如果要顯示第showPage頁,那麼遊標應移到posion的值是:
int posion=(showPage-1)*pageSize+1;
rs.absolute(posion); // 設置遊標的位置
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"學號");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"數學成績");
out.print("<TH width=50>"+"英語成績");
out.print("<TH width=50>"+"物理成績");
out.print("</TR>");
for (int i=1;i<=pageSize;i++)
{ out.print("<TR>");
out.print("<TD >"+rs.getString(1)+"</TD>");
out.print("<TD >"+rs.getString(2)+"</TD>");
out.print("<TD >"+rs.getInt("數學成績")+"</TD>");
out.print("<TD >"+rs.getInt("英語成績")+"</TD>");
out.print("<TD >"+rs.getInt("物理成績")+"</TD>");
out.print("</TR>") ;
rs.next();
}
out.print("</Table>");
con.close();
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
(5) 連接Oracle數據庫的例子
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<% Connection con=null;
Statement sql=null;
ResultSet rs=null;
try{Class.forName("oracle.jdbc.driver.OracleDriver");
}
catch(ClassNotFoundException e){}
try
{ con=
DriverManager.getConnection("jdbc:oracle:thin:@192.168.0.35:1521:Lea","scott","tiger");
sql=con.createStatement();
rs=sql.executeQuery("select * from emp");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"EMPNO");
out.print("<TH width=50>"+"Ename");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
int n=rs.getInt(1);
out.print("<TD >"+n+"</TD>");
String e=rs.getString(2);
out.print("<TD >"+e+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e1) {out.print(""+e1);}
%>
</BODY>
</HTML>
(6)查詢電子表格Excel的例子
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<% Connection con;
Statement sql;
ResultSet rs;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try { con=DriverManager.getConnection("jdbc:odbc:star","","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM 品名 ");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"品名");
out.print("<TH width=50>"+"單位");
out.print("<TH width=50>"+"單價");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
String name=rs.getString(1);
out.print("<TD >"+name+"</TD>");
String unit=rs.getString(2);
out.print("<TD >"+unit+"</TD>");
String unitprice=rs.getString(3);
out.print("<TD >"+unitprice+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
(7)使用同步連接
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<%! //聲明一個共享的連接對象:
Connection con=null;
%>
<% Statement sql=null;
ResultSet rs=null;
//第一個客戶負責建立連接對象:
if(con==null)
{ try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e)
{out.print(e);
}
try {con=DriverManager.getConnection("jdbc:odbc:moon","sa","");
sql=con.createStatement();
rs =sql.executeQuery("SELECT * FROM students");
out.print("i am first");
}
catch(SQLException e)
{out.print(e);
}
}
//其它客戶通過同步塊使用這個連接:
else
{ synchronized(con)
{ try { sql=con.createStatement();
rs =sql.executeQuery("SELECT * FROM students");
out.print("i am not first");
}
catch(SQLException e)
{out.print(e);
}
}
}
try
{ out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"學號");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"數學成績");
out.print("<TH width=50>"+"英語成績");
out.print("<TH width=50>"+"物理成績");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
String number=rs.getString(1);
out.print("<TD >"+number+"</TD>");
String name=rs.getString(2);
out.print("<TD >"+name+"</TD>");
int math=rs.getInt("數學成績");
out.print("<TD >"+math+"</TD>");
int english=rs.getInt("英語成績");
out.print("<TD >"+english+"</TD>");
int physics=rs.getInt("物理成績");
out.print("<TD >"+physics+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
呵呵,上面舉的例子都是具有代表性的例子。
在文章最後還要聲明一下:本篇文章是參考JSP實用教程寫的,再次提出感謝,另外該書不錯,本人看了,推薦JSP初學者可以買一本看看,獲益非淺的。