武夷学院-JSP实验七:JSP数据库操作_第1页
武夷学院-JSP实验七:JSP数据库操作_第2页
武夷学院-JSP实验七:JSP数据库操作_第3页
武夷学院-JSP实验七:JSP数据库操作_第4页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、武夷学院 -JSP 实验七: JSP数据库操作武夷学院实验报告课程名称: _Web应用系统开发(软件方向)_ 项目名称: _ JSP数据库操作姓名: _专业: _计算机与科学技术 _ 班级: _计科 3_学号:同组成员 _无_实验目的:1、使学生掌握连接数据库操作。2、让学生掌握使用 JDBC 查询数据库中表的记录。3、使学生掌握使用预处理语句向数据库的表添加记录。实验要求:1、使用 MVC 设计一个查询数据库表中记录的 JSP 程序。编写一个 JSP 页面inputDatabase.jsp ,用户可以输入数据库名、表名后提交一个servlet , servlet将查询结果放入一个 Javab

2、ean 模型中,然后转发到 inputDatabase.jsp,inputDatabase.jsp 页面再显示 Javabean 中的数据。2、使用 MVC 模式。视图部分由两个 JSP 页面构成,其中一个页面( insert.jsp)负责提供输入新记录的视图, 即用户可以在该页面输入要添加的记录,然后将要添加的记录提交给servlet 。servlet 负责插入记录到数据库的表中,然后查询数据库的表,并将查询结果存储到 Javabean 数据模型中,然后请求视图中的另一个JSP 页面( showRecord.jsp)显示数据模型中的数据。3、提交实验报告,实验报告中要有实验过程、结果的截图说

3、明。二、实验过程记录 1:1、使用 MVC 设计一个查询数据库表中记录的 JSP 程序。编写一个 JSP 页面 inputDatabase.jsp ,用户可以输入数据库名、表名后提交一个 servlet , servlet 将查询结果放入一个 Javabean 模型中,然后转发到 inputDatabase.jsp ,inputDatabase.jsp 页面再显示 Javabean 中的数据。(1)建立 MYSQL 连接,帐号为 root 密码为空,并创建 warehouse 数据库和 product 表。1 注:实验过程记录要包含实验步骤,页码不够可自行添加。(2)源代码和结果截图:1. 源

4、代码inputDatabase.jsp<% pagecontentType= "text/html;charset=gb2312"%>< jsp:useBeanid ="recordBean"class = "mybean.data.Shiyan1_Bean"scope = "session"/>< HTML>< bodybgcolor= yellow>< fontsize=2 >< formaction="shiyan1Servlet&q

5、uot;method =post>< b> 数据库 : < inputtype= "text"name = "dataBase"size= 22value= warehouse>< br > 表名: < inputtype= "text"name = "tableName"size= 23value= product>< br > 用户名 ( 默认 root): < inputtype= "text"name = "

6、;user"size= 10value= root>< br > 用户密码 ( 默认空 ) : <inputtype= "text"name ="password"size= 10 >< br >< inputtype="submit"name = "b"value=" 提交 " ></ form>< tableborder= 1><%String table=recordBean.getTableRe

7、cord();if(table=null) out.print(" 没有记录 " );return;String columnName=recordBean.getColumnName();if(columnName!=null) out.print("<tr>");for( inti=0;i<columnName.length;i+)out.print("<th>"+columnNamei+"</th>");out.print("</tr>"

8、;);out.println(" 全部记录数 " +table.length);for( inti=0;i<table.length;i+) out.print("<tr>");for( intj=0;j<columnName.length;j+) out.print("<td>"+tableij+/全部记录数"</td>");out.print("</tr>");%></ table</ font></

9、body >></ HTML>Shiyan1_Bean.javapackagemybean.data;publicclassShiyan1_BeanString columnName;String tableRecord=nullpublicShiyan1_Bean() tableRecord=new String11;columnName=new String1;/存放列名/存放查询到的记录public void tableRecordsetTableRecord(String = s ;s )publicreturnString getTableRecord()ta

10、bleRecord;public void columnNamesetColumnName(String =s ;s ) publicreturnString getColumnName() columnName;Shiyan1_Servlet.javapackagemyservlet.control;importimportimportimportimportpublicclassShiyan1_ServletextendsHttpServletpublicvoidinit(ServletConfigconfig)throwssuper.init(config);try Class.forN

11、ameServletException);catch(Exceptione)publicvoiddoPost(HttpServletRequestrequest,HttpServletResponsethrowsServletException,IOExceptionrequest.setCharacterEncoding("gb2312");StringdataBase=request.getParameter("dataBase");StringtableName=request.getParameter("tableName")

12、;Stringuser=request.getParameter("user");Stringpassword=request.getParameter("password");booleanboo =(dataBase= null|dataBase.length()=0);boo =boo |(tableName= null|tableName.length()=0);boo =boo |(user= null|user.length()=0);if( boo ) fail(request, response, " 查询失败 " )

13、;response)HttpSession Connection Shiyan1_Beansession=requestcon = null;recordBean= null.getSession(;true);tryrecordBean=(Shiyan1_Bean)session.getAttribute(if( recordBean= null)recordBean= new Shiyan1_Bean();/创建 Javabeansession.setAttribute("recordBean", recordBean"recordBean"对象);

14、);catch(Exceptionexp )recordBean=new Shiyan1_Bean();session.setAttribute("recordBean", recordBean);Stringuri+dataBase;trycon =DriverManager.getConnection( uri, user, password);Statementsql= con .createStatement(ResultSet.TYPE_SCROLL_SENSITIVEResultSet.CONCUR_READ_ONLY);ResultSetrs = sql.ex

15、ecuteQuery("SELECT * FROM "+tableName);ResultSetMetaDatametaData=rs .getMetaData();intcolumnCount=metaData.getColumnCount();/得到结果集的列数String columnName=new StringcolumnCount;for( inti =0; i < columnName. length; i +) columnName i =metaData.getColumnName(i +1);/得到列名,recordBean.setColumnNa

16、me(columnName);/更新 Javabeanrs .last();introwNumber= rs .getRow();/得到记录数String tableRecord=recordBean.getTableRecord();tableRecord=new StringrowNumbercolumnCount;rs .beforeFirst();inti =0;数据模型while( rs .next()for( intk =0; k < columnCount; k +)tableRecord i k =rs .getString(k +1);i +;recordBean.se

17、tTableRecord(con .close();response.sendRedirect(tableRecord"inputDatabase.jsp");/更新 Javabean);/重定向数据模型catch (SQLException e ) System. out .println(e );publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptiondoPost(request, response);publicvoi

18、dfail(HttpServletRequestrequest,HttpServletResponseStringbackNews) response.setContentType("text/html;charset=GB2312");tryPrintWriterout =response.getWriter();out .println("<html><body>");out .println("<h2>"+backNews+"</h2>") ;out .prin

19、tln(" 返回 " );out .println("<a href =inputDatabase.jsp>输入正确信息</a>");response,out .println("</body></html>");catch(IOExceptionexp )Web.xml<servlet><servlet-name>shiyan1Servlet</servlet-name></servlet><servlet-mapping>&

20、lt;servlet-name>shiyan1Servlet</servlet-name><url-pattern>/shiyan1Servlet</url-pattern></servlet-mapping>2运行结果2、使用 MVC 模式。视图部分由两个 JSP 页面构成,其中一个页面( insert.jsp )负责提供输入新记录的视图, 即用户可以在该页面输入要添加的记录, 然后将要添加的记录提交给 servlet 。servlet 负责插入记录到数据库的表中,然后查询数据库的表,并将查询结果存储到 Javabean数据模型中,然后请

21、求视图中的另一个JSP 页面( showRecord.jsp数据模型中的数据。(1)在 MYSQL 数据库中创建 Student数据库并创建mess 表。)显示(2)源代码和结果截图:1. 源代码insert.jsp<% pagecontentType= "text/html;charset=gb2312"%>< HTML>< bodybgcolor= #AAFFEE >< fontsize= 2>< formaction="shiyan2Servlet?dataBase=student&tableNa

22、me=mess"method =post >< b> 添加新记录 : < br >学号: < inputtype= "text"name = "number"size = 20 >< br > 姓名: < inputtype= "text"name = "name"size=22 >< br > 年龄: < inputtype= "text"name = "age"size=18 &

23、gt;< br >< inputtype="submit"name = "b"value=" 提交" ></ font></body ></ HTML>showRecord.jsp<% pagecontentType= "text/html;charset=gb2312"< jsp:useBeanid ="resultBean"class< HTML>< bodybgcolor= #DEEFF9 >&

24、lt; fontsize=2 >< tableborder=1 >%>scope="request"/><% String columnName=resultBean.getColumnName();%>< tr><%for(String s:columnName) %><th ><%= s%></ th ><% %></tr ><% String record = resultBean.getTableRecord();for( inti=0

25、;i<record.length;i+) %><tr ><%for( intj=0;j<recordi.length;j+) %><td ><%= recordij%> </ td ><%></ tr><% %></ table></ font></ body></ HTML>Example7_2_Bean.javapackagemybean.data;publicclassExample7_2_BeanString columnNa

26、me;String tableRecord=nullpublicExample7_2_Bean() tableRecord=new String11;columnName=new String1;/存放列名/存放查询到的记录public void tableRecordsetTableRecord(String = s ;s )publicreturnString getTableRecord()tableRecord;public void columnNamesetColumnName(String =s ;s ) publicreturnString getColumnName() co

27、lumnName;Shiyan2_Servlet.javapackagemyservlet.control;import/引入例子2 中的 Javabean模型importimportimportimportimportpublic class Shiyan2_Servlet public void init(ServletConfigextendsHttpServletconfig)throwsServletExceptionsuper.init(config);publicvoiddoPost(HttpServletRequestrequestthrowsServletException,

28、IOExceptionExample7_2_BeanresultBean= null;tryresultBean=(Example7_2_Bean)requestif( resultBean= null)resultBean= new Example7_2_Bean();request.setAttribute("resultBean",HttpServletResponse.getAttribute("resultBean"/创建 Javabean对象, resultBean);response);)catch(Exceptionexp )result

29、Beanrequest= new Example7_2_Bean(); .setAttribute( "resultBean"/ 创建 Javabean , resultBean );对象try Class.forName);catch(Exceptione )request.setCharacterEncoding("gb2312");StringdataBase=request.getParameter("dataBase");StringtableName=request.getParameter("tableName

30、"Stringnumber = request.getParameter("number");Stringname = request.getParameter("name");StringageStr= request.getParameter("age");if( number = null|number .length()=0) fail(request, response, " 添加记录失败, 必须给出记录" );return;);if( ageStr= null|ageStr.length()=

31、0)ageStr="-1"intage = Integer.parseInt( ageStr);Connectioncon ;PreparedStatementsql;ResultSetrs ;tryStringuri+ dataBase+ "?"+"user=root&password=&characterEncoding=gb2312"con =DriverManager.getConnection( uri);sql= con .prepareStatement("insert mess VALUES(

32、?,?,?)");sql.setString(1,number );sql.setString(2,name );sql.setInt(3,age );sql.executeUpdate();sql= con .prepareStatement("SELECT * FROM "+ tableName);rs =sql.executeQuery();ResultSetMetaDatametaData=rs .getMetaData();intcolumnCount=metaData.getColumnCount();/得到结果集的列数String columnNam

33、e=new StringcolumnCount;for( inti =0; i < columnName. length; i +) columnName i =metaData.getColumnName(i +1);/得到列名resultBean.setColumnName(columnName);/更新 Javabeanrs .last();introwNumber= rs .getRow();/得到记录数String tableRecord=resultBean.getTableRecord();tableRecord=new StringrowNumbercolumnCount

34、;rs .beforeFirst();inti =0;while( rs .next()for( intk =0; k < columnCount; k +)tableRecord i k =rs .getString(k +1);i +;数据模型resultBean.setTableRecord(tableRecord);/更新 Javabean数据模型con .close();RequestDispatcherdispatcherrequest.getRequestDispatcher(dispatcher.forward(request="showRecord.jsp", response);/转发);catch(SQLExceptione )System.out .println(e );fail(request, response, " 添加记录失败:" + e .toString();publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论