当前位置:学学看123知识中心电脑教学数据库教程关于ORACLE连接池» 正文

关于ORACLE连接池

[06-11 18:18:52]   来源:http://www.xxk123.com  数据库教程   阅读:8664

导读: drivers 以空格分隔的JDBC驱动程序类列表\ logfile 日志文件的绝对路径 其它的属性和特定连接池相关,其属性名字前应加上连接池名字: < poolname>.url 数据库的 JDBC URL < poolname>.maxconn 允许建立的最大连接数,0表示没有限制 < poolname>.user 用于该连接池的数据库帐号 < poolname>.password 相应的密码\ 其中url属性是必需的,而其它属性则是可选的。数据库帐号和密码必须合法。用于Windows平台的db.properties文件示例如下: drivers=sun.jdbc.odbc.JdbcOdbcDriver jdbc.idbDriver

关于ORACLE连接池,标签:sql数据库教程,access数据库教程,http://www.xxk123.com

drivers 以空格分隔的JDBC驱动程序类列表\
logfile 日志文件的绝对路径

其它的属性和特定连接池相关,其属性名字前应加上连接池名字:

< poolname>.url 数据库的 JDBC URL
< poolname>.maxconn 允许建立的最大连接数,0表示没有限制
< poolname>.user 用于该连接池的数据库帐号
< poolname>.password 相应的密码\

其中url属性是必需的,而其它属性则是可选的。数据库帐号和密码必须合法。用于Windows平台的db.properties文件示例如下:

drivers=sun.jdbc.odbc.JdbcOdbcDriver jdbc.idbDriver
logfile=D:\\user\\src\\java\\DBConnectionManager\\log.txt

idb.url=jdbc:idb:c:\\local\\javawebserver1.1\\db\\db.prp
idb.maxconn=2

access.url=jdbc:odbc:demo
access.user=demo
access.password=demopw

注意在Windows路径中的反斜杠必须输入2个,这是由于属性文件中的反斜杠同时也是一个转义字符。
init()方法在创建属性对象并读取db.properties文件之后,就开始检查logfile属性。如果属性文件中没有指定日志文件,则默认为当前目录下的DBConnectionManager.log文件。如日志文件无法使用,则向System.err输出日志记录。
装载和注册所有在drivers属性中指定的JDBC驱动程序由170至192行之间的loadDrivers()方法实现。该方法先用StringTokenizer将drivers属性值分割为对应于驱动程序名称的字符串,然后依次装载这些类并创建其实例,最后在 DriverManager中注册该实例并把它加入到一个私有的向量drivers。向量drivers将用于关闭服务时从DriverManager取消所有JDBC 驱动程序的注册。
init()方法的最后一个任务是调用私有方法createPools()创建连接池对象。如109至142行所示,createPools()方法先创建所有属性名字的枚举对象(即Enumeration对象,该对象可以想象为一个元素系列,逐次调用其nextElement()方法将顺序返回各元素),然后在其中搜索名字以“.url”结尾的属性。对于每一个符合条件的属性,先提取其连接池名字部分,进而读取所有属于该连接池的属性,最后创建连接池对象并把它保存在实例变量pools中。散列表(Hashtable类 )pools实现连接池名字到连接池对象之间的映射,此处以连接池名字为键,连接池对象为值。
为便于客户程序从指定连接池获得可用连接或将连接返回给连接池,类DBConnectionManager提供了方法getConnection()和freeConnection()。所有这些方法都要求在参数中指定连接池名字,具体的连接获取或返回操作则调用对应的连接池对象完成。它们的实现分别在051至064行、066至080行、038至049行。
如082至107行所示,为实现连接池的安全关闭,DBConnectionManager提供了方法release()。在上面我们已经提到,所有DBConnectionManager的客户程序都应该调用静态方法getInstance()以获得该管理器的引用,此调用将增加客户程序计数。客户程序在关闭时调用release()可以递减该计数。当最后一个客户程序调用release(),递减后的引用计数为0,就可以调用各个连接池的release()方法关闭所有连接了。管理类release()方法最后的任务是撤销所有JDBC驱动程序的注册。

五、Servlet使用连接池示例

Servlet API所定义的Servlet生命周期类如:

1) 创建并初始化Servlet(init()方法)。
2) 响应客户程序的服务请求(service()方法)。
3) Servlet终止运行,释放所有资源(destroy()方法)。

本例演示连接池应用,上述关键步骤中的相关操作为:

1) 在init(),用实例变量connMgr 保存调用DBConnectionManager.getInstance()所返回的引用。
2) 在service(),调用getConnection(),执行数据库操作,用freeConnection()将连接返回给连接池。

上一页  [1] [2] [3] [4] [5] [6] [7] [8]  下一页


Tag:数据库教程sql数据库教程,access数据库教程电脑教学 - 数据库教程
《关于ORACLE连接池》相关文章

Copyright 学学看123 All Right Reserved.

1 2 3 4 5 6 7 8 9 10