JAVA第7章 实验1

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
byte bb[]=name.getBytes(“iso-8859-1”); name=new String(bb); %> <look:NameCondition name=”<%=name%>”/> 姓名含有”<%=name%>”的记录: <BR><%=queryResultByName%> </FONT> </BODY></HTML> Tag 文件参考代码如下: NumberCondition.tag <%@ tag pageEncoding="GB2312" %> <%@ tag import=”java.sql.*” %> <%@ attribute name=”number” required=”true”%> <%@ variable name-given=”queryResultByNumber” scope=”AT-END”%> <% StringBuffer=result; result=new StringBuffer(); try{ Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); } catch(ClassNotFondException e){ out.print(e); } Connection con; Statement sql; ResultSet rs; int n=0; try{ result.append(“<table border=1>”); con=DriverManager.getConnection(“jdbc:odbc:redsun”,”sa”,”sa”); DatabaseMataData metadata=con.getMetaData(); ResutSet rs1=metadata.getColumns(null,null),”message”,null); int 字段个数=0; result.append(“<tr>”);
图 7-1 message 表 1. 相关知识点 本实验使用 JDBC-ODBC 桥接器方式和数据库建立连接,那么查询数据库中表的记录的 步骤是:
(1)与数据源 redsun 建立连接。 Connection con=DriverManager.getConnection(“jdbc:odbc:redsun”,”sa”,”sa”); (2)返回 Statement 对象。 Statement sql=con.createStatement(); (3)向数据库发送关于查询记录的 SQL 语句,返回查询结果,即 ResultSet 对象。 ResultSet rs=sql.executeQuerty(查询 message 表的 SQL 语句); 2. 实验目的 本实验的目的是让学生掌握使用 JDBC 查询数据库中表的记录。 3. 实验要求 编写三个 JSP 页面:inputCondition.jsp、byNumber.jsp 和 byName.jsp 页面。编写两个 Tag 文件:NumberCondition.tag 和 NameCondition.tag。 (1) inputCondition.jsp 的具体要求 inputCondition.jsp 页面提供两个表单。其中一个表单允许用户输入要查询的学生的学号, 即输入 message 表中 number 字段的查询条件,然后将查询条件提交给 byNnuber.jsp,另一 个表单允许用户输入要查询的学生的姓名,即输入 message 表中 name 字段的查询条件,然 后将查询条件提交给 byName.jsp。inputCondition.jsp 页面效果见图 7-2。
使用 MySQL 创建一个数据库 Student。 在数据库 Student 中创建名字为 message 的表,表的各个字段及属性见图 7-1。 将数据库 Student 设置名字为 redsun 的数据源。 假设访问 MySQL 数据库的用户名为 sa(或 root),该用户的密码是 sa(或 admin)。
4
result.append(“<tr>”); while(rs1.next()){
字段个数++; String clumnName=rs1.getString(4); result.append(“<td>”+clumnName+”</td>”); } result.append(“</tr>”); sql=con.createStatement(); String condition=”SELECT * FROM message Where name Like ‘%”+name+”%’”; rs=sql.executeQuery(condition); while(rs.next()){ result.append(“<tr>”); for(int k=1;k<=字段个数:k++)
3
while(rs1.next()){ 字段个数++; String clumnName=rs1.getString(4);
result.append(“<td>”+clumnName+”</td>”); } result.append(“</tr>”); sql=con.createStatement(); String condition=”SELECT * FROM message Where number Like ‘%”+number+”%’”; rs=sql.executeQuery(condition); while(rs.next()){
2
<% String name=request.gfetParameter(“number”); %> <look:NumberCondition number=”<%=number%>”/> 根据学号<%=number%>查询到的记录: <BR><%=queryResultByNumber%> </FONT> </BODY></HTML> byName.jsp <%@ page contentType="text/html;charset=GB2312" %> <@ taglib tagdir=”/WEB-INF/tags” prefix=”look”> <HTML><BODY bgcolor=pink><FONT size=2> <% String name=request.gfetParameter(“name”);
实验 7-1:查询记录
要求在 webapps 目录下新建一个 Web 服务目录:practice7。除特别要求外,实验所涉 及的 JSP 页面均保存在 practice7 中;Tag 文件保存在 practice7\WEB-INF\tags 目录中。
实验中所用的数据库为 Student,其中的表为 message 表。在进行实验之前首先完成下 列任务。
result.append(“<tr>”); for(int k=1;k<=字段个数:k++)
result.append(“<td>”+rs.getString(k)+”</td>); result.append(“</table>”); con.close(); } catch(SQLException e){ result.append(e); } jspContext.setAttribute(“queryResultByNumber”,new String(Result)); %>
1
根据学号查询
wenku.baidu.com输入学号:
提交
根据姓名(模糊)查询
姓名含有
提交
图 7-2 inputCondition.jsp 页面的效果 (2) byNumber.jsp 的具体要求 byNumber.jsp 页面首先获得 inputCondition.jsp 页面提交的关于 number 字段的查询条件, 然 后 使 用 Tag 标 记 调 用 Tag 文 件 ByNumber.tag , 并 将 number 字 段 的 查 询 条 件 传 递 给 ByNumber.tag。 (3) byName.jsp 的具体要求 byname.jsp 页面首先获得 inputCondition.jsp 页面提交的关于 name 字段的查询条件,然 后使用 Tag 标记调用 Tag 文件 ByName.tag,并将 name 字段的查询条件传递给 ByName.tag。 (4) NumberCondition.tag 的具体要求 NumberCondition.tag 文件使用 attribute 指令获得 byNumber.jsp 页面传递过来的 number 字段的查询条件,然后和数据源 redsun 建立连接,根据得到查询条件查询 message 表。 NumberCondition.tag 文件使用 variable 指令将查询结果返回给 byNumber.jsp 页面。 (5) NameCondition.tag 具体要求 NameCondtion.tag 文件使用 attribute 指令获得 byName.jsp 页面传递过来的 name 字段 的查询条件,然后和数据源 redsun 建立连接,根据得到的查询条件查询 message 表。 NameCondition.tag 文件使用 variable 指令将查询结果返回给 byName.jsp 页面。 4. 参考代码 代码仅供参考,学生可按着实验的要求,参考本代码编写代码。 JSP 页面参考代码如下: inputCondition.jsp <%@ page contentType="text/html;charset=GB2312" %> <HTML><BODY><FONT size=2>
NameCondition.tag <%@ tag pageEncoding="GB2312" %> <%@ tag import=”java.sql.*” %> <%@ attribute name=”number” required=”true”%> <%@ variable name-given=”queryResultByNumber” scope=”AT-END”%> <% StringBuffer=result;
<FORM action="byNumber" method="post"> 根据学号查询 <BR>输入学号:<INPUT type="text" name="number">
<Input type=submit name="g" value=”提交”> </FORM> 根据姓名(模糊)查询 <BR>姓名含有<Input type=text name=”name” size=5> <Input type=submit value=”提交”> </Form> </FONT></BODY></HTML> byNumber.jsp <%@ page contentType="text/html;charset=GB2312" %> <@ taglib tagdir=”/WEB-INF/tags” prefix=”look”> <HTML><BODY bgcolor=CYAN><FONT size=2>
result=new StringBuffer(); try{ Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);
} catch(ClassNotFondException e){
out.print(e); } Connection con; Statement sql; ResultSet rs; int n=0; try{ result.append(“<table border=1>”); con=DriverManager.getConnection(“jdbc:odbc:redsun”,”sa”,”sa”); DatabaseMataData metadata=con.getMetaData(); ResutSet rs1=metadata.getColumns(null,null),”message”,null); int 字段个数=0;
相关文档
最新文档