您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > web软件技术实验五
《web软件技术》实验报告(9)学号:10123568姓名:李智斌班级:计123成绩:实验名称:JDBC访问数据库实验地点:信息楼215所使用的工具软件及环境:tomcat,MySQL,navicat,JCreator一、实验目的:1.掌握使用传统的方法访问数据库;2.掌握使用数据源的方法访问数据库。二、实验内容:(一)使用传统方法通过JSP页面访问数据库【步骤1】创建数据库。假设在MySQL建立了一个名为bookstore的数据库,在其中建立books表,代码如下:CREATETABLEbooks(bookidcharacter(5)PRIMARYKEY,--书号titletext,--书名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.*%htmlheadtitleDatabaseAccessTest/title/headbody%try{Class.forName(com.mysql.jdbc.Driver);Stringdburl=jdbc:mysql://localhost:3306/bookstore;Connectionconn=DriverManager.getConnection(dburl,bookstore,bookstore);Statementstmt=conn.createStatement();Stringsql=SELECT*FROMbooks;ResultSetrs=stmt.executeQuery(sql);out.println(tableborder=1);out.println(trtd书号/tdtd书名/tdtd作者/tdtd价格/td/tr);—1—while(rs.next()){out.println(trtd+rs.getString(1)+/tdtd+rs.getString(2)+/tdtd+rs.getString(3)+/tdtd+rs.getString(5)+/td/tr);}out.println(/table);rs.close();stmt.close();conn.close();}catch(Exceptione){out.println(e.getMessage());}%/body/html结果如下:(二)通过数据源访问数据库注意:需要将数据库的JDBC驱动程序安装到Tomcat安装目录的\lib目录中,并重新启动Tomcat服务器。【步骤1】建立局部数据源在Web应用程序中建立一个META-INF目录,在其中建立一个context.xml文件,内容如下:?xmlversion=1.0encoding=utf-8?Contextreloadable=trueResourcename=jdbc/bookDStype=javax.sql.DataSourcemaxActive=4maxIdle=2username=bookstoremaxWait=5000driverClassName=org.postgresql.Driverpassword=bookstoreurl=jdbc:postgresql://localhost/bookstore//Context【步骤2】使用下面的JSP页面displayBooks.jsp访问数据库%@pagecontentType=text/html;charset=gb2312%%@pageimport=java.sql.*,javax.sql.*,javax.naming.*%htmlheadtitleDataSourceTest/title/headbody%try{Contextcontext=newInitialContext();—2—DataSourceds=(DataSource)context.lookup(java:comp/env/jdbc/bookDS);Connectionconn=ds.getConnection();Statementstmt=conn.createStatement();ResultSetrs=stmt.executeQuery(SELECT*FROMbooks);out.println(tableborder=1);out.println(trtd书号/tdtd书名/tdtd作者/tdtd价格/td/tr);while(rs.next()){out.println(trtd+rs.getString(1)+/tdtd+rs.getString(2)+/tdtd+rs.getString(3)+/tdtd+rs.getString(5)+/td/tr);}out.println(/table);rs.close();stmt.close();conn.close();}catch(Exceptione){out.println(e.getMessage());}%/body/html结果如下:(三)综合应用。本实验采用MVC设计模式,通过数据源和DAO对象访问数据库。其中JavaBeans实现模型,访问数据库,Servlet实现控制器,JSP页面实现视图。模型包括2个JavaBean:BookBean用于存放图书信息,BookDAO用于访问数据库。控制器包括2个Servlet:BookQueryServlet根据请求参数查询图书信息、BookInsertServlet用来向数据库中插入数据。视图包括4个JSP页面:bookQuery.jsp显示查询页面、bookInsert.jsp显示插入页面、display.jsp显示查询结果页面和errorPage.jsp显示错误页面。【步骤1】存放图书信息的JavaBeans代码BookBean.java,它也是一个传输对象。packagecom.beans;importjava.io.*;publicclassBookBeanimplementsSerializable{privateStringbookid=null;privateStringtitle=null;privateStringauthor=null;privateStringpublisher=null;privatefloatprice=0.0F;publicBookBean(){}publicBookBean(StringbookId,Stringauthor,Stringtitle,Stringpublisher,floatprice){this.bookid=bookId;this.title=title;this.author=author;this.publisher=publisher;this.price=price;—3—}publicStringgetBookid(){returnthis.bookid;}publicStringgetTitle(){returntitle;}publicStringgetAuthor(){returnthis.author;}publicfloatgetPrice(){returnprice;}publicStringgetPublisher(){returnpublisher;}publicvoidsetBookid(Stringbookid){this.bookid=bookid;}publicvoidsetTitle(Stringtitle){this.title=title;}publicvoidsetAuthor(Stringauthor){this.author=author;}publicvoidsetPrice(floatprice){this.price=price;}publicvoidsetPublisher(Stringpublisher){this.publisher=publisher;}}【步骤2】下面的BookDAO是一个简单的JavaBeans,它实现数据库的访问。packagecom.beans;importjava.sql.*;importjavax.sql.*;importjavax.naming.*;importjava.util.ArrayList;importcom.beans.BookBean;publicclassBookDAO{privatestaticInitialContextcontext=null;privateDataSourcedataSource=null;publicBookDAO(){try{if(context==null){context=newInitialContext();}dataSource=(DataSource)context.lookup(java:comp/env/jdbc/bookDS);}catch(NamingExceptione2){}}//根据书号查询图书信息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));—4—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{c
本文标题:web软件技术实验五
链接地址:https://www.777doc.com/doc-2867208 .html