版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
武夷学院-JSP实验七:JSP数据库操作武夷学院实验报告课程名称:___Web应用系统开发(软件方向)__项目名称:_JSP数据库操作姓名:__专业:_计算机与科学技术_班级:_计科3_学号:同组成员__无__实验目的:1、使学生掌握连接数据库操作。2、让学生掌握使用JDBC查询数据库中表的记录。3、使学生掌握使用预处理语句向数据库的表添加记录。实验要求:1、使用MVC设计一个查询数据库表中记录的JSP程序。编写一个JSP页面inputDatabase.jsp,用户可以输入数据库名、表名后提交一个servlet,servlet将查询结果放入一个Javabean模型中,然后转发到inputDatabase.jsp,inputDatabase.jsp页面再显示Javabean中的数据。2、使用MVC模式。视图部分由两个JSP页面构成,其中一个页面(insert.jsp)负责提供输入新记录的视图,即用户可以在该页面输入要添加的记录,然后将要添加的记录提交给servlet。servlet负责插入记录到数据库的表中,然后查询数据库的表,并将查询结果存储到Javabean数据模型中,然后请求视图中的另一个JSP页面(showRecord.jsp)显示数据模型中的数据。3、提交实验报告,实验报告中要有实验过程、结果的截图说明。二、实验过程记录注:实验过程记录要包含实验步骤,页码不够可自行添加。:注:实验过程记录要包含实验步骤,页码不够可自行添加。1、使用MVC设计一个查询数据库表中记录的JSP程序。编写一个JSP页面inputDatabase.jsp,用户可以输入数据库名、表名后提交一个servlet,servlet将查询结果放入一个Javabean模型中,然后转发到inputDatabase.jsp,inputDatabase.jsp页面再显示Javabean中的数据。(1)建立MYSQL连接,帐号为root密码为空,并创建warehouse数据库和product表。try{con=DriverManager.getConnection(uri,user,password);Statementsql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);ResultSetrs=sql.executeQuery("SELECT*FROM"+tableName);ResultSetMetaDatametaData=rs.getMetaData();intcolumnCount=metaData.getColumnCount();//得到结果集的列数String[]columnName=newString[columnCount];for(inti=0;i<columnName.length;i++){columnName[i]=metaData.getColumnName(i+1);//得到列名}recordBean.setColumnName(columnName);//更新Javabean数据模型rs.last();introwNumber=rs.getRow();//得到记录数String[][]tableRecord=recordBean.getTableRecord();tableRecord=newString[rowNumber][columnCount];rs.beforeFirst();inti=0;while(rs.next()){for(intk=0;k<columnCount;k++)tableRecord[i][k]=rs.getString(k+1);i++;}recordBean.setTableRecord(tableRecord);//更新Javabean数据模型con.close();response.sendRedirect("inputDatabase.jsp");//重定向}catch(SQLExceptione){System.out.println(e);}}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}publicvoidfail(HttpServletRequestrequest,HttpServletResponseresponse,StringbackNews){response.setContentType("text/html;charset=GB2312");try{PrintWriterout=response.getWriter();out.println("<html><body>");out.println("<h2>"+backNews+"</h2>");out.println("返回");out.println("<ahref=inputDatabase.jsp>输入正确信息</a>");out.println("</body></html>");}catch(IOExceptionexp){}}}Web.xml<servlet><servlet-name>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.运行结果2、使用MVC模式。视图部分由两个JSP页面构成,其中一个页面(insert.jsp)负责提供输入新记录的视图,即用户可以在该页面输入要添加的记录,然后将要添加的记录提交给servlet。servlet负责插入记录到数据库的表中,然后查询数据库的表,并将查询结果存储到Javabean数据模型中,然后请求视图中的另一个JSP页面(showRecord.jsp)显示数据模型中的数据。(1)在MYSQL数据库中创建Student数据库并创建mess表。(2)源代码和结果截图:源代码insert.jsp<%@pagecontentType="text/html;charset=gb2312"%><HTML><bodybgcolor=#AAFFEE><fontsize=2><formaction="shiyan2Servlet?dataBase=student&tableName=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><br><inputtype="submit"name="b"value="提交"></font></body></HTML>showRecord.jsp<%@pagecontentType="text/html;charset=gb2312"%><jsp:useBeanid="resultBean"class="mybean.data.Example7_2_Bean"scope="request"/><HTML><bodybgcolor=#DEEFF9><fontsize=2><tableborder=1><%String[]columnName=resultBean.getColumnName();%><tr><%for(Strings:columnName){%><th><%=s%></th><%}%></tr><%String[][]record=resultBean.getTableRecord();for(inti=0;i<record.length;i++){%><tr><%for(intj=0;j<record[i].length;j++){%><td><%=record[i][j]%></td><%}%></tr><%}%></table></font></body></HTML>Example7_2_Bean.javapackagemybean.data;publicclassExample7_2_Bean{String[]columnName;//存放列名String[][]tableRecord=null;//存放查询到的记录publicExample7_2_Bean(){tableRecord=newString[1][1];columnName=newString[1];}publicvoidsetTableRecord(String[][]s){tableRecord=s;}publicString[][]getTableRecord(){returntableRecord;}publicvoidsetColumnName(String[]s){columnName=s;}publicString[]getColumnName(){returncolumnName;}}Shiyan2_Servlet.javapackagemyservlet.control;importmybean.data.Example7_2_Bean;//引入例子2中的Javabean模型importjava.io.*;importjava.sql.*;importjavax.servlet.*;importjavax.servlet.http.*;importjava.util.Calendar;publicclassShiyan2_ServletextendsHttpServlet{publicvoidinit(ServletConfigconfig)throwsServletException{super.init(config);}publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Example7_2_BeanresultBean=null;try{resultBean=(Example7_2_Bean)request.getAttribute("resultBean");if(resultBean==null){resultBean=newExample7_2_Bean();//创建Javabean对象request.setAttribute("resultBean",resultBean);}}catch(Exceptionexp){resultBean=newExample7_2_Bean();//创建Javabean对象request.setAttribute("resultBean",resultBean);}try{Class.forName("com.mysql.jdbc.Driver");}catch(Exceptione){}request.setCharacterEncoding("gb2312");StringdataBase=request.getParameter("dataBase");StringtableName=request.getParameter("tableName");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()==0)ageStr="-1";intage=Integer.parseInt(ageStr);Connectioncon;PreparedStatementsql;ResultSetrs;try{Stringuri="jdbc:mysql:///"+dataBase+"?"+"user=root&password=&characterEncoding=gb2312";con=DriverManager.getConnection(uri);sql=con.prepareStatement("insertmessVALUES(?,?,?)");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[]columnName=newString[columnCount];for(inti=0;i<columnName.length;i++){columnName[i]=metaData.getColumnName(i+1);//得到列名}resultBean.setColumnName(columnName);//更新Javabean数据模型rs.last();introwNumber=rs.getRow();//得到记录数String[][]tableRecord=resultBean.getTableRecord();tableRecord=newString[rowNumber][columnCount];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();RequestDispatcherdispatcher=request.getRequestDispatcher("showRecord.jsp");dispatcher.forward(request,response);//转发}catch(SQLExceptione){System.out.println(e);fail(request,response,"添加记录失败:"+e.toString());}}publicvoiddoGet(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{doPost(request,response);}publicvoidfail(HttpServletRequestrequest,HttpServletResponseresponse,StringbackNews){response.setContentType("text/html;charset=GB2312");try{PrintWriterout=respons
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 原材料及中间产品管理方案
- 二零二五年香港活牛养殖、屠宰、运输全流程服务合同3篇
- 房屋建筑学试题库(含答案)汇编
- 二零二五版XX污水处理厂污泥处理与资源化利用合同3篇
- 阻碍执行力的三大原因幻灯片资料
- 2024年海南卫生健康职业学院高职单招语文历年参考题库含答案解析
- 2024年浙江金融职业学院高职单招语文历年参考题库含答案解析
- 台球室项目投资协议书
- 2024年济源职业技术学院高职单招语文历年参考题库含答案解析
- 2024年阳曲县中医医院高层次卫技人才招聘笔试历年参考题库频考点附带答案
- 妊娠合并贫血护理
- 完整解读《义务教育课程方案(2022版)》PPT2022年新版义务教育课程实施方案最新发布义务教育课程方案(2022版)精品课件
- 6.ctg-mboss crm2.0渠道服务总线功能技术_v0.99
- 流动资金自动测算表(内自带计算公式)
- 工地施工临时用水的计算
- t-桥式起重机设计计算书
- 暴雨产流计算(推理公式河南省)
- 品质管控流程(PPT32页)
- 人教版小学数学六年级上册:第八单元总复习教案(共10页)
- 田字格硬笔书法练字专用A4打印版红蓝两色
- 铁路站房及配套工程装饰装修施工作业指导书
评论
0/150
提交评论