??
字號:
第5章 JSP中使用數據庫
例子1(效果如圖5.12所示)
Example5_1.jsp:
<%@ 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:sun","sa","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM students");
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>");
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>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
例子2(效果如圖5.13所示)
Example5_2.jsp:
<%@ 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:sun","sa","");
sql=con.createStatement();
rs=sql.executeQuery("SELECT * FROM students WHERE 英語成績 >= 80 ");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"英語成績");
out.print("</TR>");
while(rs.next())
{ out.print("<TR>");
out.print("<TD >"+rs.getString(2)+"</TD>");
out.print("<TD >"+rs.getInt("英語成績")+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
例子3(效果如圖5.14所示)
Example5_3.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<% String name,number;
int math,physics,english;
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 lownumber=rs.getRow();
out.print("該表共有"+lownumber+"條記錄");
out.print("<BR>現在逆序輸出記錄:");
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>");
//為了逆序輸出記錄,需將游標移動到最后一行之后:
rs.afterLast();
while(rs.previous())
{ out.print("<TR>");
number=rs.getString(1);
out.print("<TD >"+number+"</TD>");
name=rs.getString(2);
out.print("<TD >"+name+"</TD>");
math=rs.getInt("數學成績");
out.print("<TD >"+math+"</TD>");
english=rs.getInt("英語成績");
out.print("<TD >"+english+"</TD>");
physics=rs.getInt("物理成績");
out.print("<TD >"+physics+"</TD>");
out.print("</TR>") ;
}
out.print("</Table>");
out.print("單獨輸出第5條記錄<BR>");
rs.absolute(5);
number=rs.getString(1);
out.print(number+",");
name=rs.getString(2);
out.print(name+",");
math=rs.getInt("數學成績");
out.print(math+",");
english=rs.getInt("英語成績");
out.print(english+",");
physics=rs.getInt("物理成績");
out.print(physics+"。");
con.close();
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
例子4(效果如圖5.15所示)
Example5_4.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<% String xuehao,name;
int math;
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");
out.print("<Table Border>");
out.print("<TR>");
out.print("<TH width=100>"+"學號");
out.print("<TH width=100>"+"姓名");
out.print("<TH width=50>"+"數學成績");
out.print("</TR>");
//將游標移動到最后一行:
rs.last();
//獲取最后一行的行號:
int lownumber=rs.getRow();
//獲取記錄數:
int number=lownumber;
double sum=0;
int 抽取數目=4;
int old_i[]={0,0,0,0};
int k=抽取數目;
int j=0;
while(抽取數目>0)
{int i=(int)(Math.random()*number+1);//隨機獲取一個1到number之間的數。
boolean boo=false;
for(int m=0;m<old_i.length;m++) //查找該行是否已被取出。
{if(i==old_i[m])
boo=true;
}
if(boo) continue; //假如該行已被取出,結束本次循環,繼續產生隨機數。
rs.absolute(i); //游標移到這一行。
out.print("<TR>");
xuehao=rs.getString(1); //獲取該行學號字段的值。
out.print("<TD >"+xuehao+"</TD>");
name=rs.getString(2); //獲取該行姓名字段的值。
out.print("<TD >"+name+"</TD>");
math=rs.getInt("數學成績"); //獲取改行數學成績字段的值。
out.print("<TD >"+math+"</TD>");
out.print("</TR>") ;
sum=sum+math;
抽取數目--;
old_i[j]=i; //記錄已取出的行號。
j++;
}
out.print("</Table>");
out.print("平均成績是:"+sum/k);
con.close();
}
catch(SQLException e1) {}
%>
</BODY>
</HTML>
例子5(效果如圖5.16、5.17、5.18所示)
Example5_5.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<HTML>
<BODY>
<Font size=1>
<FORM action="byname.jsp" Method="post">
<P>成績查詢
<P>輸入姓名:
<Input type=text name="name">
<Input type=submit name="g" value="提交">
</Form>
<FORM action="byscore.jsp" Method="post" >
<P>根據分數查詢名單:<BR> 英語分數在
<Input type=text name="englishmin" value=0>
和
<Input type=text name="englishmax" value=100>
之間
<BR> 數學分數在
<Input type=text name="mathmin" value=0>
和
<Input type=text name="mathmax" value=100>
之間
<BR> <Input type=submit value="提交">
</Form>
</BODY>
</HTML>
bynename.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<% //獲取提交的姓名:
String name=request.getParameter("name");
if(name==null)
{name="";
}
byte b[]=name.getBytes("ISO-8859-1");
name=new String(b);
Connection con=null;
Statement sql=null;
ResultSet rs=null;
try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}
catch(ClassNotFoundException e){}
try { con=DriverManager.getConnection("jdbc:odbc:sun","sa","");
sql=con.createStatement();
String condition="SELECT * FROM students WHERE 姓名 = "+"'"+name+"'";
rs=sql.executeQuery(condition);
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>");
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>") ;
}
out.print("</Table>");
con.close();
}
catch(SQLException e)
{ }
%>
</BODY>
</HTML>
byscore.jsp:
<%@ page contentType="text/html;charset=GB2312" %>
<%@ page import="java.sql.*" %>
<HTML>
<BODY>
<% //獲取提交的分數的最大值和最小值:
String englishmax=request.getParameter("englishmax");
if(englishmax==null)
{englishmax="100";
}
String englishmin=request.getParameter("englishmin");
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -