📄
字号:
第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 + -