实验8-jdbc数据库访问_第1页
实验8-jdbc数据库访问_第2页
实验8-jdbc数据库访问_第3页
实验8-jdbc数据库访问_第4页
实验8-jdbc数据库访问_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

实验8JDBC访问数据库一、实验目的1.掌握使用传统的方法访问数据库;2.掌握使用数据源的方法访问数据库。二、实验原理数据库应用是Web应用开发的一个重要应用。Web应用程序访问数据库有两种方法:传统的方法和使用JNDI数据源的方法。传统方法访问数据库的步骤是:①加载数据库驱动程序;②建立连接对象;③创建语句对象;④获得结果集;⑤关闭有关连接对象。使用数据源访问数据库的步骤是:①配置数据源(局部数据源或全局数据源);②通过JNDI机制查找命名数据源;③通过数据源对象创建连接对象;④其他与传统方法一致。三、实验内容与步骤(一)使用传统方法通过JSP页面访问数据库【步骤1】创建数据库。假设在PostgreSQL建立了一个名为bookstore的数据库,在其中建立books表,代码如下:CREATETABLEbooks(bookidcharacter(5)PRIMARYKEY,--书号titlevarchar2(80),--书名authorcharactervarying(20),--作者publishercharactervarying(40),--出版社pricereal--价格);向books表中插入几条记录,代码如下:INSERTINTObooksVALUES('204','HeadFirstServlets&JSP','BryanBasham','中国电力出版社',98.00);INSERTINTObooksVALUES('201','Servlets与JSP核心教程','HallMarty','清华大学出版社',45);INSERTINTObooksVALUES('202','Tomcat与JavaWeb开发技术祥解','孙卫琴','机械工业出版社',45);INSERTINTObooksVALUES('203','JSP应用开发技术','柳永坡','人民邮电出版社',52);INSERTINTObooksVALUES('205','J2EE1.4编程指南','SpielmanSue','电子工业出版社',68);注意:需要将数据库的JDBC驱动程序安装到应用程序的WEB-INF\lib目录中。【步骤2】使用下面JSP页面displayBooks.jsp访问books表中的数据。<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><html><head><title>DatabaseAccessTest</title></head><body><%try{Class.forName("org.postgresql.Driver");Stringdburl="jdbc:postgresql://localhost:5432/bookstore";Connectionconn=DriverManager.getConnection(dburl,"bookstore","bookstore");Statementstmt=conn.createStatement();Stringsql="SELECT*FROMbooks";ResultSetrs=stmt.executeQuery(sql);out.println("<tableborder=1>");out.println("<tr><td>书号</td><td>书名</td><td>作者</td><td>价格</td></tr>");while(rs.next()){out.println("<tr><td>"+rs.getString(1)+"</td><td>"+rs.getString(2)+"</td><td>"+rs.getString(3)+"</td><td>"+rs.getString(5)+"</td></tr>");}out.println("</table>");rs.close();stmt.close();conn.close();}catch(Exceptione){out.println(e.getMessage());}%></body></html>运用mysql的代码如下:<%@pagecontentType="text/html;charset=gb2312"%><%@pageimport="java.sql.*"%><html><head><title>DatabaseAccessTest</title></head><body> <% try{ Class.forName("com.mysql.jdbc.Driver"); Stringdburl="jdbc:mysql://localhost:3306/bookstore"; Connectionconn=DriverManager .getConnection(dburl,"root",""); Statementstmt=conn.createStatement(); Stringsql="SELECT*FROMbooks"; ResultSetrs=stmt.executeQuery(sql); out.println("<tableborder=1>"); out.println("<tr><td>书号</td><td>书名</td><td>作者</td><td>价格</td></tr>"); while(rs.next()){ out.println("<tr><td>"+rs.getString(1)+"</td><td>" +rs.getString(2)+"</td><td>"+rs.getString(3)}//根据书号查询图书信息publicBookBeansearchBook(Stringbookid){ Connectionconn=null;PreparedStatementpstmt=null;ResultSetrst=null;BookBeanbook=newBookBean();try{conn=dataSource.getConnection(); pstmt=conn.prepareStatement("SELECT*FROMbooksWHEREbookid=?"); pstmt.setString(1,bookid); rst=pstmt.executeQuery(); if(rst.next()){ book.setBookid(rst.getString("bookid")); book.setTitle(rst.getString("title"));book.setAuthor(rst.getString("author"));book.setPublisher(rst.getString("publisher"));book.setPrice(rst.getFloat("price")); returnbook;}else{returnnull;} }catch(SQLExceptionse){ returnnull; }finally{ try{ conn.close(); }catch(SQLExceptionse){ } }}//插入一本图书记录publicbooleaninsertBook(BookBeanbook){ Connectionconn=null; PreparedStatementpstmt=null; try{ conn=dataSource.getConnection(); pstmt=conn.prepareStatement( "INSERTINTObooksVALUES(?,?,?,?,?)"); pstmt.setString(1,book.getBookid()); pstmt.setString(2,book.getTitle()); pstmt.setString(3,book.getAuthor()); pstmt.setString(4,book.getPublisher()); pstmt.setFloat(3,book.getPrice()); pstmt.executeUpdate(); pstmt.close(); returntrue; }catch(SQLExceptionse){ returnfalse; }finally{ try{ conn.close(); }catch(SQLExceptionse){} }}}【步骤3】下面的JSP页面bookQuery.jsp实现根据书号查询图书信息<%@pagecontentType="text/html;charset=gb2312"%><html><head><title>BookQuery</title></head><body>请输入一个书号:<br><formaction="bookquery.do"method="post"><inputtype="text"name="bookid"><br><inputtype="submit"value="提交"></form></body></html>图3bookQuery.jsp【步骤4】下面的JSP页面bookInsert.jsp实现向数据库中插入数据<%@pagecontentType="text/html;charset=gb2312"%><html><head><title>BookInsert</title></head><body><h3>请输入图书信息:</h3><%if(request.getAttribute("result")!=null)out.print(request.getAttribute("result"));%><formaction="bookinsert.do"method="post"><table><tr><td>书号</td><td><inputtype="text"name="bookid"></td></tr><tr><td>书名</td><td><inputtype="text"name="title"></td></tr><tr><td>作者</td><td><inputtype="text"name="author"></td></tr><tr><td>出版社</td><td><inputtype="text"name="publisher"></td></tr><tr><td>单价</td><td><inputtype="text"name="price"></td></tr><tr><td><inputtype="submit"value="确定"></td><td><inputtype="reset"value="重置"></td></tr></table></form></body></html>图4bookInsert.jsp图5插入成功【步骤5】显示查询结果的JSP页面display.jsp:<%@pagecontentType="text/html;charset=gb2312"%><jsp:useBeanid="book"class="com.beans.BookBean"scope="request"/><html><body>书号:<jsp:getPropertyname="book"property="bookid"/>书名:<jsp:getPropertyname="book"property="title"/>作者:<jsp:getPropertyname="book"property="author"/>出版社:<jsp:getPropertyname="book"property="publisher"/>价格:<jsp:getPropertyname="book"property="price"/></body></html>图6显示查询结果【步骤6】错误页面errorPage.jsp代码如下:<%@pagecontentType="text/html;charset=gb2312"%><html><body>对不起,您查的图书不存在!</body></html>图7显示错误页面【步骤7】下面的Servlet实现从请求参数获得书号,然后从数据库中查找该书,最后根据查询结果将请求转发到显示页面(display.jsp)或错误页面(errorPage.jsp)。packagecom.control;importjava.io.*;importjava.sql.*;importjavax.servlet.*;importjavax.servlet.http.*;importcom.beans.BookBean;importcom.beans.BookDAO;publicclassBookQueryServletextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{Stringbookid=request.getParameter("bookid");BookDAObookdao=newBookDAO();BookBeanbook=bookdao.searchBook(bookid);if(book!=null){request.getSession().setAttribute("book",book);RequestDispatcherview=request.getRequestDispatcher("/display.jsp");view.forward(request,response);}else{RequestDispatcherview=request.getRequestDispatcher("/errorPage.jsp");view.forward(request,response);}} }【步骤8】下面的Servlet实现向数据库插入数据,并将控制请求的转发到bookInsert.jsp页面。packagecom.control;importjava.io.*;importjava.sql.*;importjavax.servlet.*;importjavax.servlet.http.*;importcom.beans.BookBean;importcom.beans.BookDAO;publicclassBookInsertServletextendsHttpServlet{publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ request.setCharacterEncoding("gb2312");Stringmessage=null;BookBeanbook=newBookBean(request.getParameter("bookid"),request.getParameter("title"),request.getParameter("author"),request.getParameter("publisher"),Float.parseFloat(request.getParameter("price")) );BookDAObookdao=newBookDAO();booleansuccess=bookdao.insertBook(book);if(success){message="成功插入一条记录!";}else{message="插入记录错误!";}request.setAttribute("result",message);RequestDispatcherview=request.getRequestDispatcher("/bookInsert.jsp");view.forward(request,response);}}【步骤9】在DD文件中部署Servl

温馨提示

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

评论

0/150

提交评论