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

下载本文档

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

文档简介

武夷学院实验报告课程名称:_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表。(2)源代码和结果截图:1. 源代码inputDatabase.jsp数据库:表名:用户名(默认root):用户密码(默认空): % String table=recordBean.getTableRecord(); if(table=null) out.print(没有记录); return; String columnName=recordBean.getColumnName(); if(columnName!=null) out.print(); for(int i=0;icolumnName.length;i+) out.print(+columnNamei+); out.print(); out.println(全部记录数+table.length); /全部记录数 for(int i=0;itable.length;i+) out.print(); for(int j=0;jcolumnName.length;j+) out.print(+tableij+); out.print(); % Shiyan1_Bean.javapackage mybean.data;public class Shiyan1_Bean String columnName ; /存放列名 String 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 columnName; 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(config); 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); 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=null|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(); /创建Javabean对象 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=con.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(int i=0;icolumnName.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; while(rs.next() for(int k=0;kcolumnCount;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 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.println(); out.println(+backNews+) ; out.println(返回); out.println(输入正确信息); out.println(); catch(IOException exp) Web.xml shiyan1Servlet myservlet.control.Shiyan1_Servlet shiyan1Servlet /shiyan1Servlet2运行结果 2、使用MVC模式。视图部分由两个JSP页面构成,其中一个页面(insert.jsp)负责提供输入新记录的视图,即用户可以在该页面输入要添加的记录,然后将要添加的记录提交给servlet。servlet负责插入记录到数据库的表中,然后查询数据库的表,并将查询结果存储到Javabean数据模型中,然后请求视图中的另一个JSP页面(showRecord.jsp)显示数据模型中的数据。(1)在MYSQL数据库中创建Student数据库并创建mess表。(2)源代码和结果截图:1. 源代码insert.jsp添加新记录:学号:姓名:年龄: showRecord.jsp % String record = resultBean.getTableRecord(); for(int i=0;i % for(int j=0;j Example7_2_Bean.javapackage mybean.data;public class Example7_2_Bean String columnName ; /存放列名 String tableRecord=null; /存放查询到的记录 public Example7_2_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 columnName; Shiyan2_Servlet.javapackage myservlet.control;import mybean.data.Example7_2_Bean; /引入例子2中的Javabean模型import java.io.*;import java.sql.*;import javax.servlet.*;import javax.servlet.http.*;import java.util.Calendar;public class Shiyan2_Servlet extends HttpServlet public void init(ServletConfig config) throws ServletException super.init(config); public void doPost(HttpServletRequest request,HttpServletResponse 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); 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(dataBase); 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,添加记录失败,必须给出记录); 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=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(); ResultSetMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount(); /得到结果集的列数 String columnName = new StringcolumnCount; for(int i=0;icolumnName.length;i+) columnNamei = metaData.getColumnName(i+1); /得到列名 resultBean.setColumnName(columnName); /更新Javabean数据模型 rs.last(); int rowNumber=rs.getRow(); /得到记录数 String tableRecord=resultBean.getTableRecord(); tableRecord = new StringrowNumbercolumnCount; rs.beforeFirst(); int i=0; while(rs.next() for(int k=0;kcolumnCount;k+) tableRecordik = rs.getString(k+1); i+; resultBean.setTableRecord(tableRecord); /更新Javabean数据模型 con.close(); 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(Ht

温馨提示

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

评论

0/150

提交评论