- 1、本文档共34页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE 5 / NUMPAGES 33
JavaWeb课程设计
实验报告
班级:
计算机09-2
实验内容:
图书馆管理系统
成员:
赵伯涛 44号(组长)
张宝红 42号
黄海清 22号
实验时间:
从 2011年12月3日
至 2011年12月9日
指导老师:
李启锐
一、实验目的。
1、在实践中巩固本学习所学的JavaWeb技术。
2、在实践中初步使用设计模式(GoF),体验设计模式带来的好处。
3、配合数据库的使用,实现一个功能完善的小型系统。
二、实验内容。
开发一个图书管理系统,实现图书馆的各种管理操作。如图书入库、作废,借书证提供、挂失处理,图书的借出、归还、续借、丢失以及超期处理。s
三、业务逻辑。
四、数据库设计。
根据业务逻辑设计出数据库。表结构及关系如下图:
数据库导入文本保存在DataBaseSQL.txt文档中,数据库数据保存在Data.txt文档中。
五、框架结构。
采用了类似与MVC框架的框架结构,页面端使用了ExtJS技术(包含AJAX),增加了业务层和,数据库操作层。控制器层调用业务层,业务层调用数据库操作层。将控制,业务,数据库操作分别分层。
六、技术性代码。
(本实验的代码在Library.zip中)
1、tomcat数据库连接池技术。在tomcat中的配置文件server.xml文件中配置项目Context标签,再加入Resource标签:
??Context path=LibraryOA
?? ??docBase=/home/sea /MyEclipse/LibraryOA/WebRoot
?? ??debug=0
Resource
name=jdbc/webdb
auth=Container
type=javax.sql.DataSource
driverClassName=org.gjt.mm.mysql.Driver
url=jdbc:mysql://localhost:3306/LibraryOA
username=root
password=root
maxActive=50
maxIdle=20
maxWait=10000 /
/Context
以上代码配置了数据库驱动,数据库地址,数据库用户名、密码,默认提供的连接数,最大提供的连接数,最长等待时间等参数。
2、Java中从连接池获取连接的类,使用了单例模式(来自GoF提出的设计模式):
// DataBaseConnectionPond.java
package library.util;
import java.sql.Connection;
import javax.sql.DataSource;
//作者:赵伯涛
public class DataBaseConnectionPond {
private static DataBaseConnectionPond dbcp = null;
private DataSource ds = null;
private DataBaseConnectionPond() throws Exception {
javax.naming.Context ctx = new javax.naming.InitialContext();
ds = (DataSource) ctx.lookup(java:/comp/env/jdbc/webdb);
}
public Connection GetConnettion() throws Exception {
return ds.getConnection();
}
public static Connection getConnection() throws Exception {
Connection conn = null;
if (dbcp == null) {
Thread.sleep((long) (Math.random() * 200));
synchronized (DataBaseConnectionPond.class) {
if (dbcp == null) {
dbcp = new DataBaseConnectionPond();
}
}
}
try {
conn = dbcp.GetConnettion();
} catch (Exception e) {
}
return conn;
}
}
该类在整个项目部署的过程中只实例化了一个对象,故称单例。可以通过该类的static函数getConnection()获取连
文档评论(0)