web软件技术实验五.docx

上传人:b****7 文档编号:23312866 上传时间:2023-05-16 格式:DOCX 页数:15 大小:62.85KB
下载 相关 举报
web软件技术实验五.docx_第1页
第1页 / 共15页
web软件技术实验五.docx_第2页
第2页 / 共15页
web软件技术实验五.docx_第3页
第3页 / 共15页
web软件技术实验五.docx_第4页
第4页 / 共15页
web软件技术实验五.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

web软件技术实验五.docx

《web软件技术实验五.docx》由会员分享,可在线阅读,更多相关《web软件技术实验五.docx(15页珍藏版)》请在冰豆网上搜索。

web软件技术实验五.docx

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.*"%>

DatabaseAccessTest

<%

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("");

out.println("书号书名作者价格");

while(rs.next()){

out.println(""+rs.getString

(1)+""+rs.getString

(2)

+""+rs.getString(3)

+""+rs.getString(5)+"");

}

out.println("");

rs.close();

stmt.close();

conn.close();

}catch(Exceptione){

out.println(e.getMessage());

}

%>

结果如下:

(二)通过数据源访问数据库

注意:

需要将数据库的JDBC驱动程序安装到Tomcat安装目录的\lib目录中,并重新启动Tomcat服务器。

【步骤1】建立局部数据源

在Web应用程序中建立一个META-INF目录,在其中建立一个context.xml文件,内容如下:

xmlversion="1.0"encoding="utf-8"?

>

name="jdbc/bookDS"

type="javax.sql.DataSource"

maxActive="4"

maxIdle="2"

username="bookstore"

maxWait="5000"

driverClassName="org.postgresql.Driver"

password="bookstore"

url="jdbc:

postgresql:

//localhost/bookstore"/>

【步骤2】使用下面的JSP页面displayBooks.jsp访问数据库

<%@pagecontentType="text/html;charset=gb2312"%>

<%@pageimport="java.sql.*,javax.sql.*,javax.naming.*"%>

DataSourceTest

<%

try{

Contextcontext=newInitialContext();

DataSourceds=(DataSource)context.lookup("java:

comp/env/jdbc/bookDS");

Connectionconn=ds.getConnection();

Statementstmt=conn.createStatement();

ResultSetrs=stmt.executeQuery("SELECT*FROMbooks");

out.println("");

out.println("书号书名作者价格");

while(rs.next()){

out.println(""+rs.getString

(1)+""+rs.getString

(2)

+""+rs.getString(3)

+""+rs.getString(5)+"");

}

out.println("");

rs.close();

stmt.close();

conn.close();

}catch(Exceptione){

out.println(e.getMessage());

}

%>

结果如下:

(三)综合应用。

本实验采用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;

}

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"));

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"%>

BookQuery

请输入一个书号:



【步骤4】下面的JSP页面bookInsert.jsp实现向数据库中插入数据

<%@pagecontentType="text/html;charset=gb2312"%>

BookInsert

请输入图书信息:

<%if(request.getAttribute("result")!

=null)

out.print(request.getAttribute("result"));

%>

书号
书名
作者
出版社
单价

【步骤5】显示查询结果的JSP页面display.jsp:

<%@pagecontentType="text/html;charset=gb2312"%>

useBeanid="book"class="com.beans.BookBean"scope="request"/>

书号:

getPropertyname="book"property="bookid"/>

书名:

getPropertyname="book"property="title"/>

作者:

getPropertyname="book"property="author"/>

出版社:

getPropertyname="book"property="publisher"/>

价格:

getPropertyname="book"property="price"/>

【步骤6】错误页面errorPage.jsp代码如下:

<%@pagecontentType="text/html;charset=gb2312"%>

对不起,您查的图书不存在!

【步骤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="插入记录错误

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1