版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武夷学院实验报告课程名称:WebS用系统开发(软件方向)项目名称:JSP数据库操作姓名:_ 专业:一计算机与科学技术 班级:计科3一学号: 同组成员无实验目的:1、使学生掌握连接数据库操作。2、让学生掌握使用JDBC查询数据库中表的记录。3、使学生掌握使用预处理语句向数据库的表添加记录。实验要求:1、使用MVC设计一个查询数据库表中记录的 JSP程序。编写一个JSP页面 inputDatabase.jsp ,用户可以输入数据库名、表名后提交一个 servlet, servlet将查询结果 放入一个Javabean模型中,然后转发到inputDatabase.jsp , inputDatabas
2、e.jsp 页面再显 示Javabean中的数据。2、使用MVC模式。视图部分由两个JSP页面构成,其中一个页面(insert.jsp )负责提供 输入新记录的视图,即用户可以在该页面输入要添加的记录,然后将要添加的记录提交给 servlet。servlet负责插入记录到数据库的表中,然后查询数据库的表,并将查询结果存储到 Javabean数据模型中,然后请求视图中的另一个 JSP页面(showRecord.jsp )显示数据模 型中的数据。3、提交实验报告,实验报告中要有实验过程、结果的截图说明。二、实验过程记录1:1、使用MVC设计一个查询数据库表中记录的 JSP程序。编写一个JSP页面i
3、nputDatabase.jsp ,用户可以输入数据库名、表名后提交一个 servlet, servlet将查询结果 放入一个Javabean模型中,然后转发到inputDatabase.jsp , inputDatabase.jsp 页面再显 示Javabean中的数据。(1)建立MYSQL连接,帐号为root密码为空,并创建 warehouse数据库和product表。运理 事矍 »,SA SSL 55H HTTP炉,二二产1 _ cfc act lj'."fiareau5* (cc-3 hD5_2 Jw 亲 Nhiat Refilf弟"Q胃文文件会&
4、#163;营E表4嗫宁增户ET岚国MiN 口 lccfllh<3irf:_j>6昌 iPt&HrtnionjehefflaQ fT3位v are-hov-se-*鼻霆produd同用由 Qx* ' Y1*B Ji+t* 霏* 轼电fiumbQf Harriemi* 帛price划了SUM J017Xn-ll (N3HHEI自罚谑墙o出理 科学 R 彳霹mawi检邕时可归里0 byte-t - 同e,» * 1 * * a 0 图_ _5ELECT * mOM *bwhuu» . AodiKf UMk 0. - OCC胃 1 I赤(焦 I 氧二看出
5、注:实验过程记录要包含实验步骤,页码不够可自行添加(2)源代码和结果截图:1.源代码inputDatabase.jsp/><% page contentType ="text/html;charset=gb2312"%><jsp:useBean id ="recordBean" class ="mybean.data.Shiyan1_Bean"scope ="session<HTML><body bgcolor =yellow ><font size =2><
6、form action ="shiyan1Servlet"method =post ><b>据库:<input type="text"name ="dataBase"size =22value=warehouse ><br >表名:<input type="text"name ="tableName"size =23 value= product ><br >用户名(默认root):<inputtype = "te
7、xt"name ="user"size =10value =root ><br >用户密码(默认空):<input<br >< input type ="submit"</ form >type = "text"name ="password"name ="b" value ="提交"size=10 ><table border = 1 ><%String 叩 table=recordBe
8、an.getTableRecord();if (table= null ) out.print("没有记录");return ;String 口columnName=recordBean.getColumnName();if (columnName!= null ) out.print("<tr>");for ( int i=0;i<columnName.length;i+) out.print("<th>"+columnNamei+"</th>");out.print(&
9、quot;</tr>");out.println("全部记录数"+table.length);/ 全部记录数for ( int i=0;i<table.length;i+) out.print("<tr>");for ( int j=0;j<columnName.length;j+) out.print("<td>" +tableij+ "</td>"); out.print("</tr>"); %><
10、/ table >< / font >< / body >< / HTML>Shiyan1_Bean.javapackage mybean.data;public class Shiyan1_BeanString 口 columnName ;String tableRecord =nullpublic Shiyan1_Bean() tableRecord = new String11;columnName = new String1;public void setTableRecord(String tableRecord =s;public Stri
11、ng getTableRecord() return tableRecord ;public void setColumnName(String 口 columnName = s;public String 口 getColumnName() return columnName ;/存放列名/存放查询到的记录s) s)Shiyan1_Servlet.javapackage myservlet.control;import mybean.data.Shiyan1_Bean;import java.sql.*;import java.io.*;import javax.servlet.*;impo
12、rt javax.servlet.http.*;public classShiyan1 Servlet extends HttpServletpublic void init(ServletConfigconfig ) throwssuper .init( config );try Class. forName ( "com.mysql.jdbc.Driver" catch (Exception e)ServletException);public void doPost(HttpServletRequestrequest ,HttpServletResponserespo
13、nsethrows ServletException,IOExceptionrequest .setCharacterEncoding("gb2312");String dataBase = request .getParameter( "dataBase" );StringtableName = request.getParameter("tableName"Stringuser = request .getParameter("user");Stringpassword = request.getParamet
14、er("password" );booleanboo =( dataBase =null | dataBase.length()=0);boo =boo |( tableName =null | tableName.length()=0);boo = boo |( user = null | if ( boo ) user .length()=0);fail(request , response ,"查询失败"); HttpSessionsession =request .getSession( true );Connectioncon =null ;S
15、hiyan1_BeanrecordBean =null ;try recordBean =(Shiyan1_Bean) session .getAttribute( "recordBean" ); if ( recordBean = null ) recordBean =new Shiyan1_Bean();/ 创建 Javabean 对象session .setAttribute( "recordBean" , recordBean ); catch (Exception exp ) recordBean =new Shiyan1_Bean(); se
16、ssion .setAttribute( "recordBean" , recordBean ); String uri ="jdbc:mysql://"+dataBase ;try con =DriverManager. getConnection ( uri , user , password );Statementsql =con .createStatement(ResultSet.TYPE_SCROLL_SENSITIVEResultSet.CONCUR_READ_ONLY);ResultSetrs =sql .execute
17、Query( "SELECT * FROM " +tableName );ResultSetMetaDatametaData = rs .getMetaData();int columnCount = metaData .getColumnCount();/ 得到结果集的列数String 口columnName = new String columnCount ;for ( int i =0; i <columnName . length ; i +) columnName i = metaData .getColumnName( i +1);/ 得至1J歹U名 re
18、cordBean .setColumnName( columnName );/ 更新 Javabean 数据模型rs .last(); int rowNumber =rs .getRow(); / 得到记录数 String tableRecord =recordBean .getTableRecord();tableRecord = new String rowNumber columnCount ; rs .beforeFirst(); int i =0; while (rs .next() for ( int k=0; kcolumnCount ; k+)tableRecord i k =
19、 rs .getString( k+1); i +; recordBean .setTableRecord( tableRecord );/ 更新 Javabean 数据模型con .close(); response .sendRedirect( "inputDatabase.jsp");/ 重定向 catch (SQLException e) System. out .println( e); public void doGet(HttpServletRequestrequest ,HttpServletResponseresponse )throws ServletE
20、xception,IOException doPost( request , response ); public void fail(HttpServletRequestrequest ,HttpServletResponseresponse ,StringbackNews ) response .setContentType( "text/html;charset=GB2312");try PrintWriterout =response .getWriter();out .println( "<html><body>" );
21、out .println("<h2>" +backNews +"</h2>");out .println("返回");out .println( "<a href =inputDatabase.jsp>输入正确信息 </a>");out .println("</body></html>"); catch (IOException exp ) Web.xml<servlet><servlet-name>
22、shiyan1Servlet</servlet-name><servlet-class>myservlet.control.Shiyan1_Servlet</servlet-class></servlet><servlet-mapping><servlet-name>shiyan1Servlet</servlet-name><url-pattern>/shiyan1Servlet</url-pattern></servlet-mapping>2.运行结果| 图 MputDmt
23、ab羽 孙福nl"闻0 Shiy5nl Bean.ja'/j 目 榷b,x 楙 http-/l(Kdl bQ5fc8080/teitjcli7/inputl>fftBbaKj5p数据能 sarehouser表名: | 口rotiuct|用户名(默述HOOtJ: 18t二用户密码(默认空)二提交至部记录幼1milljnullHl inputDatabase.jp I j Shryanl£ervletjBVB thiyan1 Beanjava web.xi 11 / http; /I oc alh o st; 90804*5t ch7/J n p utDat a
24、ba se j5 p数掘库 :TaxthoixsE志名: product用户名(默认root) : root 用户至码(默认空兀提交全部记录触Lriiinibe-rnamemadeTim&price|20皿的二20L7-Q1-01 00:00:00, 024. 002、使用MVC模式。视图部分由两个JSP页面构成,其中一个页面(insert.jsp )负责提供 输入新记录的视图,即用户可以在该页面输入要添加的记录,然后将要添加的记录提交给 servlet。servlet负责插入记录到数据库的表中,然后查询数据库的表,并将查询结果存储到 Javabean数据模型中,然后请求视图中的另一个
25、 JSP页面(showRecord.jsp )显示数据模 型中的数据。(1)在MYSQL数据库中创建Student数据库并创建 mess表。Eg,版 11白尸* fla31mM.表同口muE 而d<mum图洛 0 二寄国4flB 况熟曲 月声言5垠震口 IOC|hoM_3a»肝曲F 曲的也0 OoC«lhCEtJ.informalw 器'2_1r_用翔曲得臼克事干浦还百知1瞟身入艮牛出口EfldEnance scjhsmdnurnfesrH&fwe fl5#如We,的111仪刘坤i»-ax«r n0 %南事安 斗施行 侬O 5y图再
26、阳>国丽-G克却 :4 S+t身美母j讶,管府B *> 量 wirebcuit-引于IrinaCB日需逢aQ行格五 In-omic商一 中制朝日碉201V 11 19 2lEl&4iK虺野同Ml索引高淳Qlby*« 曲* - e s* * i * * 画国 _、SE11CT 1 FROM 'iLicirtiL'.'Hiwt' L Mil &. '000要 1 烹记芸 t共 I 式J 手工 1 口C 1(2)源代码和结果截图:1.源代码insert.jsp<% page contentType ="te
27、xt/html;charset=gb2312"%><HTML>< body bgcolor =#AAFFEE ><font size =2><form action ="shiyan2Servlet?dataBase=student&tableName=mess'<b>添加新记录:<br >学号:<input type = "text"name ="number" size =20 ><br >姓名:<inputtyp
28、e= "text"name ="name"size =22 ><br > 年龄:<inputtype= "text"name ="age"size =18 ><br >< input type ="submit" name ="b" value ="提交"</ font ></ body ></ HTML>showRecord.jsp<% page contentTy
29、pe = "text/html;charset=gb2312%>method =post ><jsp:useBean id ="resultBean" class ="mybean.data.Example7_2_Bean"scope ="request" /><HTML><body bgcolor =#DEEFF9 ><font size =2><table border =1 >< % String 口columnName=resultBean
30、.getColumnName();%><tr >< % for (String s:columnName) %> <th ><%= s %x/ th >< % %> </ tr >< % String record = resultBean.getTableRecord();for ( int i=0;i<record.length;i+) %> <tr >< % for (int j=0;j<recordi.length;j+) %><td ><%=
31、 recordij%> </ td >< % %></ tr >< % %>< / table >< / font >< / body >< / HTML>Example7_2_Bean.javapackage mybean.data;public class Example7_2_BeanString 口 columnName ;/ 存放列名String tableRecord =null ;/ 存放查询到的记录public Example7_2_Bean() tableRecord = n
32、ew String11; columnName = new String1; public void setTableRecord(String s)tableRecord =s; public String getTableRecord() return tableRecord ;s) public void setColumnName(String 口columnName=s;public String 口 getColumnName() return columnName ;Shiyan2_Servlet.javapackage myservlet.control;import mybe
33、an.data.Example7_2_Bean;/ 引入例子 2 中的 Javabean 模型import java.io.*;import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import java.util.Calendar;public classShiyan2 Servlet extends HttpServletpublic void init(ServletConfigconfig ) throws ServletExceptionsuper .init( config );public voi
34、d doPost(HttpServletRequestrequest ,HttpServletResponseresponsethrows ServletException,IOExceptionExample7_2_BeanresultBean =null ;try resultBean =(Example7_2_Bean)request.getAttribute("resultBean"if (resultBean= null )resultBean=new Example7_2_Bean();/创建Javabean 对象request .setAttribute(&q
35、uot;resultBean", resultBean );catch (Exceptionexp )resultBean =new Example7_2_Bean();/ 创建 Javabean 对象request .setAttribute("resultBean", resultBean );try Class. forName ( "com.mysql.jdbc.Driver");catch (Exceptione)request .setCharacterEncoding("gb2312");StringdataB
36、ase = request .getParameter("dataBase" );StringtableName = request .getParameter("tableName" );Stringnumber =request .getParameter("number");Stringname =request .getParameter("name");StringageStr =request .getParameter("age");if ( number = null | num
37、ber .length()=0) fail( request , response ,"添加记录失败,必须给出记录");return ; if (ageStr = null | ageStr .length()=0) ageStr = "-1" int age = Integer.parseInt(ageStr );Connection con ; PreparedStatementsql ;ResultSet rs ; try Stringuri ="jdbc:mysql://"+dataBase +"?
38、" +"user=root&password=&characterEncoding=gb2312"con =DriverManager. getConnection (uri ); sql =con .prepareStatement( "insert mess VALUES(?,?,?)");sql .setString(1,number );sql .setString(2,name);sql .setInt(3, age ); sql .executeUpdate(); sql =con .prepareStatement
39、( "SELECT * FROM " +tableName ); rs =sql .executeQuery();ResultSetMetaDatametaData = rs .getMetaData();int columnCount = metaData .getColumnCount();/ 得到结果集的列数String 口columnName = new String columnCount ;for ( int i =0; i <columnName . length ; i +) columnName i = metaData .getColumnName
40、( i +1);/ 得至1J歹U名 resultBean .setColumnName( columnName );/ 更新 Javabean 数据模型rs .last(); int rowNumber =rs .getRow(); / 得到记录数 String tableRecord =resultBean .getTableRecord();tableRecord = new String rowNumber columnCount ; rs .beforeFirst(); int i =0; while (rs .next() for ( int k=0; kcolumnCount ;
41、k+) tableRecord i k = rs .getString( k+1); i +; resultBean .setTableRecord( tableRecord );/ 更新 Javabean 数据模型con .close();RequestDispatcherdispatcher =request .getRequestDispatcher("showRecord.jsp" );dispatcher .forward( request , response );/ 转发 catch (SQLException e)System. out .println( e);fail(request , response ,"添加记录失败:"+e .toString();response )responsepublic void doGet(HttpSe
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年网络安全攻防技术专业测试题目
- 2026年中医药专业标准化考试试题集与答案
- 2026年心理学基础与心理咨询技能综合测试题
- 2026年食品卫生与安全知识题库
- 2026年一级建筑师考试建筑材料试题
- 新疆维吾尔自治区第一济困医院康复综合楼建设项目环境影响报告表
- 2026年音乐制作人专业测试题含音乐制作流程与技巧
- 手工饰品摆摊经验分享:选品定价陈列话术
- 全国药师专业知识考试题(附答案)
- 机械设备安全管理办法试题附答案
- 2025年70周岁以上老年人换长久驾照三力测试题库(附含答案)4
- GB/T 42968.9-2025集成电路电磁抗扰度测量第9部分:辐射抗扰度测量表面扫描法
- 湖南省新高考教学教研联盟2026届高三年级12月联考(长郡二十校联盟)数学试卷(含答案)
- 酒店运营管理思路
- 消防驾驶安全培训课件
- 晕厥门诊病历书写范文
- 2024-2025学年度陕西能源职业技术学院单招《职业适应性测试》考试历年机考真题集(易错题)附答案详解
- GB/T 29911-2025汽车租赁服务规范
- 微生物培养基知识培训课件
- 保安机具管理办法
- 维修工突发故障应对心理
评论
0/150
提交评论