实验8jdbc数据库访问Word下载.docx

上传人:b****3 文档编号:18520639 上传时间:2022-12-18 格式:DOCX 页数:16 大小:99.73KB
下载 相关 举报
实验8jdbc数据库访问Word下载.docx_第1页
第1页 / 共16页
实验8jdbc数据库访问Word下载.docx_第2页
第2页 / 共16页
实验8jdbc数据库访问Word下载.docx_第3页
第3页 / 共16页
实验8jdbc数据库访问Word下载.docx_第4页
第4页 / 共16页
实验8jdbc数据库访问Word下载.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

实验8jdbc数据库访问Word下载.docx

《实验8jdbc数据库访问Word下载.docx》由会员分享,可在线阅读,更多相关《实验8jdbc数据库访问Word下载.docx(16页珍藏版)》请在冰豆网上搜索。

实验8jdbc数据库访问Word下载.docx

HeadFirstServlets&

JSP'

'

BryanBasham'

中国电力出版社'

98.00);

INSERTINTObooksVALUES

('

201'

Servlets与JSP核心教程'

HallMarty'

清华大学出版社'

45);

202'

Tomcat与JavaWeb开发技术祥解'

孙卫琴'

机械工业出版社'

203'

JSP应用开发技术'

柳永坡'

人民邮电出版社'

52);

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"

"

Statementstmt=conn.createStatement();

Stringsql="

SELECT*FROMbooks"

;

ResultSetrs=stmt.executeQuery(sql);

out.println("

tableborder=1>

"

tr>

td>

书号<

/td>

书名<

作者<

价格<

/tr>

while(rs.next()){

+rs.getString

(1)+"

+rs.getString

(2)

+"

+rs.getString(3)

+rs.getString(5)+"

}

/table>

rs.close();

stmt.close();

conn.close();

}catch(Exceptione){

out.println(e.getMessage());

/body>

/html>

运用mysql的代码如下:

try{

Class.forName("

com.mysql.jdbc.Driver"

Stringdburl="

mysql:

3306/bookstore"

Connectionconn=DriverManager

.getConnection(dburl,"

root"

Statementstmt=conn.createStatement();

Stringsql="

ResultSetrs=stmt.executeQuery(sql);

out.println("

while(rs.next()){

out.println("

+rs.getString

(1)+"

+rs.getString

(2)+"

+rs.getString(3)

+"

+rs.getString(5)+"

}

rs.close();

stmt.close();

conn.close();

}catch(Exceptione){

out.println(e.getMessage());

}

图1displayBooks.jsp

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

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

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

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

?

xmlversion="

1.0"

encoding="

utf-8"

>

Contextreloadable="

true"

Resource

name="

jdbc/bookDS"

type="

javax.sql.DataSource"

maxActive="

4"

maxIdle="

2"

username="

maxWait="

5000"

driverClassName="

password="

url="

/>

/Context>

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

java.sql.*,javax.sql.*,javax.naming.*"

DataSourceTest<

Contextcontext=newInitialContext();

DataSourceds=(DataSource)context.lookup("

java:

comp/env/jdbc/bookDS"

Connectionconn=ds.getConnection();

ResultSetrs=stmt.executeQuery("

图2displayBooks.jsp

(三)综合应用。

本实验采用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,它实现数据库的访问。

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

}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;

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;

returnfalse;

}catch(SQLExceptionse){}

【步骤3】下面的JSP页面bookQuery.jsp实现根据书号查询图书信息

BookQuery<

请输入一个书号:

br>

formaction="

bookquery.do"

method="

post"

inputtype="

text"

submit"

value="

提交"

/form>

图3bookQuery.jsp

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

BookInsert<

h3>

请输入图书信息:

/h3>

%if(request.getAttribute("

result"

)!

=null)

out.print(request.getAttribute("

formaction="

bookinsert.do"

table>

>

出版社<

单价<

确定"

reset"

重置"

图4bookInsert.jsp

图5插入成功

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

charset=gb2312"

jsp:

useBeanid="

book"

class="

com.beans.BookBean"

scope="

request"

书号:

getPropertyname="

property="

书名:

作者:

出版社:

价格:

图6显示查询结果

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

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

图7显示错误页面

【步骤7】下面的Servlet实现从请求参数获得书号,然后从数据库中查找该书,最后根据查询结果将请求转发到显示页面(display.jsp)或错误页面(errorPage.jsp)。

packagecom.control;

importjavax.servlet.*;

importjavax.servlet.http.*;

importcom.beans.BookDAO;

publicclassBookQueryServletextendsHttpServlet{

publicvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)

throwsServletException,IOException{

Stringbookid=request.getParameter("

BookDAObookdao=newBookDAO();

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

当前位置:首页 > 经管营销

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

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