实验8jdbc数据库访问教学提纲Word格式.docx
《实验8jdbc数据库访问教学提纲Word格式.docx》由会员分享,可在线阅读,更多相关《实验8jdbc数据库访问教学提纲Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
![实验8jdbc数据库访问教学提纲Word格式.docx](https://file1.bdocx.com/fileroot1/2022-10/11/40111787-d953-4469-9b0e-09e93f0ef8d2/40111787-d953-4469-9b0e-09e93f0ef8d21.gif)
④其他与传统方法一致。
三、实验内容与步骤
(一)使用传统方法通过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);
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;
privatefloat