




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、武夷学院实验报告课程名称:_Web应用系统开发(软件方向)_ 项目名称:_ JSP数据库操作姓名:_ _专业:_计算机与科学技术_ 班级:_计科3_学号: 同组成员_无_实验目的:1、使学生掌握连接数据库操作。2、让学生掌握使用JDBC查询数据库中表的记录。3、使学生掌握使用预处理语句向数据库的表添加记录。实验要求:1、使用MVC设计一个查询数据库表中记录的JSP程序。编写一个JSP页面inputDatabase.jsp,用户可以输入数据库名、表名后提交一个servlet,servlet将查询结果放入一个Javabean模型中,然后转发到inputDatabase.jsp,inputDatab
2、ase.jsp页面再显示Javabean中的数据。2、使用MVC模式。视图部分由两个JSP页面构成,其中一个页面(insert.jsp)负责提供输入新记录的视图,即用户可以在该页面输入要添加的记录,然后将要添加的记录提交给servlet。servlet负责插入记录到数据库的表中,然后查询数据库的表,并将查询结果存储到Javabean数据模型中,然后请求视图中的另一个JSP页面(showRecord.jsp)显示数据模型中的数据。3、提交实验报告,实验报告中要有实验过程、结果的截图说明。二、实验过程记录 注:实验过程记录要包含实验步骤,页码不够可自行添加。:1、使用MVC设计一个查询数据库表中记
3、录的JSP程序。编写一个JSP页面inputDatabase.jsp,用户可以输入数据库名、表名后提交一个servlet,servlet将查询结果放入一个Javabean模型中,然后转发到inputDatabase.jsp,inputDatabase.jsp页面再显示Javabean中的数据。(1)建立MYSQL连接,帐号为root密码为空,并创建warehouse数据库和product表。(2)源代码和结果截图:1. 源代码inputDatabase.jsp<% page contentType="text/html;charset=gb2312" %><
4、;jsp:useBean id="recordBean" class="mybean.data.Shiyan1_Bean" scope="session"/><HTML><body bgcolor=yellow><font size=2><form action="shiyan1Servlet" method=post><b>数据库:<input type="text" name="dataBase" s
5、ize=22 value =warehouse><br>表名:<input type="text" name="tableName" size=23 value=product><br>用户名(默认root):<input type="text" name="user" size=10 value=root><br>用户密码(默认空):<input type="text" name="password"
6、size=10><br><input type="submit" name="b" value="提交"></form> <table border=1> <% String table=recordBean.getTableRecord(); if(table=null) out.print("没有记录"); return; String columnName=recordBean.getColumnName(); if(columnName!=null
7、) out.print("<tr>"); for(int i=0;i<columnName.length;i+) out.print("<th>"+columnNamei+"</th>"); out.print("</tr>"); out.println("全部记录数"+table.length); /全部记录数 for(int i=0;i<table.length;i+) out.print("<tr>"
8、;); for(int j=0;j<columnName.length;j+) out.print("<td>"+tableij+"</td>"); out.print("</tr>"); %> </table></font></body></HTML> Shiyan1_Bean.javapackage mybean.data;public class Shiyan1_Bean String columnName ; /存放列名 Strin
9、g tableRecord=null; /存放查询到的记录 public Shiyan1_Bean() tableRecord = new String11; columnName = new String1; public void setTableRecord(String s) tableRecord=s; public String getTableRecord() return tableRecord; public void setColumnName(String s) columnName = s; public String getColumnName() return co
10、lumnName; Shiyan1_Servlet.javapackage myservlet.control;import mybean.data.Shiyan1_Bean;import java.sql.*;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;public class Shiyan1_Servlet extends HttpServlet public void init(ServletConfig config) throws ServletException super.init(con
11、fig); try Class.forName("com.mysql.jdbc.Driver"); catch(Exception e) public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException request.setCharacterEncoding("gb2312"); String dataBase= request.getParameter("dataBase")
12、; String tableName= request.getParameter("tableName"); String user= request.getParameter("user"); String password= request.getParameter("password"); boolean boo =( dataBase=null|dataBase.length()=0); boo = boo|( tableName=null|tableName.length()=0); boo = boo|( user=nul
13、l|user.length()=0); if(boo) fail(request,response,"查询失败"); HttpSession session=request.getSession(true); Connection con=null; Shiyan1_Bean recordBean=null; try recordBean=(Shiyan1_Bean)session.getAttribute("recordBean"); if(recordBean=null) recordBean=new Shiyan1_Bean(); /创建Javab
14、ean对象 session.setAttribute("recordBean",recordBean); catch(Exception exp) recordBean=new Shiyan1_Bean(); session.setAttribute("recordBean",recordBean); String uri="jdbc:mysql://"+dataBase; try con=DriverManager.getConnection(uri,user,password); Statement sql=co
15、n.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); ResultSet rs=sql.executeQuery("SELECT * FROM "+tableName); ResultSetMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount(); /得到结果集的列数 String columnName = new StringcolumnCount; for(in
16、t i=0;i<columnName.length;i+) columnNamei = metaData.getColumnName(i+1); /得到列名 recordBean.setColumnName(columnName); /更新Javabean数据模型 rs.last(); int rowNumber=rs.getRow(); /得到记录数 String tableRecord=recordBean.getTableRecord(); tableRecord = new StringrowNumbercolumnCount; rs.beforeFirst(); int i=0
17、; while(rs.next() for(int k=0;k<columnCount;k+) tableRecordik = 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(HttpServletRequest
18、request,HttpServletResponse response) throws ServletException,IOException doPost(request,response); public void fail(HttpServletRequest request,HttpServletResponse response, String backNews) response.setContentType("text/html;charset=GB2312"); try PrintWriter out=response.getWriter(); out.
19、println("<html><body>"); out.println("<h2>"+backNews+"</h2>") ; out.println("返回"); out.println("<a href =inputDatabase.jsp>输入正确信息</a>"); out.println("</body></html>"); catch(IOException exp) W
20、eb.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
21、></servlet-mapping>2运行结果 2、使用MVC模式。视图部分由两个JSP页面构成,其中一个页面(insert.jsp)负责提供输入新记录的视图,即用户可以在该页面输入要添加的记录,然后将要添加的记录提交给servlet。servlet负责插入记录到数据库的表中,然后查询数据库的表,并将查询结果存储到Javabean数据模型中,然后请求视图中的另一个JSP页面(showRecord.jsp)显示数据模型中的数据。(1)在MYSQL数据库中创建Student数据库并创建mess表。(2)源代码和结果截图:1. 源代码insert.jsp<% page co
22、ntentType="text/html;charset=gb2312" %><HTML><body bgcolor=#AAFFEE><font size=2><form action="shiyan2Servlet?dataBase=student&tableName=mess" method=post><b>添加新记录:<br>学号:<input type="text" name="number" size=20>
23、<br>姓名:<input type="text" name="name" size=22><br>年龄:<input type="text" name="age" size=18><br><input type="submit" name="b" value="提交"></font></body></HTML> showRecord.jsp<
24、% page contentType="text/html;charset=gb2312" %><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.get
25、ColumnName(); %> <tr> <% for(String s:columnName) %> <th><%= s %></th> <% %> </tr> <% String record = resultBean.getTableRecord(); for(int i=0;i<record.length;i+) %> <tr> <% for(int j=0;j<recordi.length;j+) %> <td><%= reco
26、rdij %> </td> <% %> </tr> <% %> </table></font></body></HTML> Example7_2_Bean.javapackage mybean.data;public class Example7_2_Bean String columnName ; /存放列名 String tableRecord=null; /存放查询到的记录 public Example7_2_Bean() tableRecord = new String11; colu
27、mnName = new String1; public void setTableRecord(String s) tableRecord=s; public String getTableRecord() return tableRecord; public void setColumnName(String s) columnName = s; public String getColumnName() return columnName; Shiyan2_Servlet.javapackage myservlet.control;import mybean.data.Example7_
28、2_Bean; /引入例子2中的Javabean模型import java.io.*;import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import ;public class Shiyan2_Servlet extends HttpServlet public void init(ServletConfig config) throws ServletException super.init(config); public void doPost(HttpServletRequest request,Ht
29、tpServletResponse response) throws ServletException,IOException Example7_2_Bean resultBean=null; try resultBean=(Example7_2_Bean)request.getAttribute("resultBean"); if(resultBean=null) resultBean=new Example7_2_Bean(); /创建Javabean对象 request.setAttribute("resultBean",resultBean);
30、catch(Exception exp) resultBean=new Example7_2_Bean(); /创建Javabean对象 request.setAttribute("resultBean",resultBean); try Class.forName("com.mysql.jdbc.Driver"); catch(Exception e) request.setCharacterEncoding("gb2312"); String dataBase = request.getParameter("dataBa
31、se"); String tableName = request.getParameter("tableName"); String number=request.getParameter("number"); String name=request.getParameter("name"); String ageStr=request.getParameter("age"); if(number=null|number.length()=0) fail(request,response,"添加
32、记录失败,必须给出记录"); return; if(ageStr=null|ageStr.length()=0) ageStr = "-1" int age = Integer.parseInt(ageStr); Connection con; PreparedStatement sql; ResultSet rs; try String uri="jdbc:mysql://"+dataBase+"?"+ "user=root&password=&characterEncoding
33、=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("SELECT * FROM "+tableName); rs=sql.executeQuery(); ResultSe
34、tMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount(); /得到结果集的列数 String columnName = new StringcolumnCount; for(int i=0;i<columnName.length;i+) columnNamei = metaData.getColumnName(i+1); /得到列名 resultBean.setColumnName(columnName); /更新Javabean数据模型 rs.last(); int rowNum
35、ber=rs.getRow(); /得到记录数 String tableRecord=resultBean.getTableRecord(); tableRecord = new StringrowNumbercolumnCount; rs.beforeFirst(); int i=0; while(rs.next() for(int k=0;k<columnCount;k+) tableRecordik = rs.getString(k+1); i+; resultBean.setTableRecord(tableRecord); /更新Javabean数据模型 con.close()
36、; RequestDispatcher dispatcher= request.getRequestDispatcher("showRecord.jsp"); dispatcher.forward(request,response); /转发 catch(SQLException e) System.out.println(e); fail(request,response,"添加记录失败:"+e.toString(); public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,I
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- yiaoliao供销合同范例
- 专家技术合同范例
- 以患者体验为中心的智能医疗服务优化策略研究
- 市城市供排水总公司年终工作总结模版
- 区块链技术助力物流信息透明化探索
- 机器人焊接 7 项目四任务4.1教学设计
- 医疗教育深度融合儿童成长补钙教育项目推广
- 万科合同范例制度
- 个人试用期的工作总结模版
- 网膜炎的临床护理
- 《教师职业道德》全书word版
- 唯美复古风人间烟火气相册宣传模板课件
- 高空作业安全会议记录内容
- 合同制消防员绩效考核细则详解
- 00510秘书实务-自考整合版
- [复习]边坡客土吹附施工方案
- 门禁一卡通系统解决方案
- 冲压试题库及答案文档
- 煤矿机电运输专业质量标准化管理制度
- 华为保密制度范文
- 工程款支付审核记录表
评论
0/150
提交评论