|
网站首页
|
JAVA文章
|
AppServers
|
Web开发
|
应用开发
|
资源下载
|
论坛
想学好编程,学好外语很重要 [enadd 2006年12月25日]
设为首页
加入收藏
联系站长
您现在的位置:
编程笔记网
>>
JAVA文章
>>
数据库
>> 文章正文
一种简单JDBC连接池的实现
热
荐
【字体:
小
大
】
一种简单JDBC连接池的实现
作者:佚名 文章来源:不详 点击数: 更新时间:2006-4-16
1.前言
数据库
应用,在许多软件系统中经常用到,是开发中大型系统不可缺少的辅助。但如果对
数据库
资源没有很好地管理(如:没有及时回收
数据库
的游标(ResultSet)、Statement、连接 (Connection)等资源),往往会直接导致系统的稳定。这类不稳定因素,不单单由
数据库
或者系统本身一方引起,只有系统正式使用后,随着流量、用户的增加,才会逐步显露。
在b基于Java开发的系统中,JDBC是程序员和
数据库
打交道的主要途径,提供了完备的
数据库
操作方法接口。但考虑到规范的适用性,JDBC只提供了最直接的
数据库
操作规范,对
数据库
资源管理,如:对物理连接的管理及缓冲,期望第三方应用服务器(Application Server)的提供。
本文,以JDBC规范为基础,介绍相关的
数据库
连接池机制,并就如果以简单的方式,实现有效地管理
数据库
资源介绍相关实现技术。
2.连接池技术背景
2.1JDBC
JDBC是一个规范,遵循JDBC接口规范,各个
数据库
厂家各自实现自己的驱动程序(Driver),如下图所示:
应用在获取
数据库
连接时,需要以URL的方式指定是那种类型的Driver,在获得特定的连接后,可按照固定的接口操作不同类型的
数据库
,如: 分别获取Statement、执行SQL获得ResultSet等,如下面的例子 :
import
java
.
sql
.*;
…
..DriverManager.registerDriver(
new oracle.jdbc.
driver.OracleDriver());
Connection dbConn = DriverManager.getConnection
(“jdbc:oracle:thin:@127.0.0.1:1521:
oracle”,“username”, “password” );
Statement st = dbConn.createStatement();
ResultSet rs = st.executeQuery(
“select * from demo_table” );
…
some data source operation in herers.close();
st.close();dbConn.close();
在完成数据操作后,还一定要关闭所有涉及到的
数据库
资源。这虽然对应用程序的逻辑没有任何影响,但是关键的操作。上面是个简单的例子,如果搀和众多的if-else、exception,资源的管理也难免百密一疏。如同C中的内存泄漏问题,Java系统也同样会面临崩溃的恶运。所以
数据库
资源的管理依赖于应用系统本身,是不安全、不稳定的一种隐患。
2.2JDBC连接池
在标准JDBC对应用的接口中,并没有提供资源的管理方法。所以,缺省的资源管理由应用自己负责。虽然在JDBC规范中,多次提及资源的关闭/回收及其他的合理运用。但最稳妥的方式,还是为应用提供有效的管理手段。所以,JDBC为第三方应用服务器(Application Server)提供了一个由
数据库
厂家实现的管理标准接口:连接缓冲(connection pooling)。引入了连接池( Connection Pool )的概念 ,也就是以缓冲池的机制管理
数据库
的资源。
JDBC最常用的资源有三类:
-Connection:
数据库
连接。
-Statement: 会话声明。
-ResultSet: 结果集游标。
分别存在以下的关系 :
[1]
[2]
[3]
[4]
下一页
文章录入:enadd 责任编辑:enadd
上一篇文章:
用连接池提高Servlet访问数据库的效率
下一篇文章:
数据库连接池Java实现小结
【
发表评论
】【
加入收藏
】【
告诉好友
】【
打印此文
】【
关闭窗口
】
最新热点
最新推荐
相关文章
jsp连接数据库大全
RESIN/TOMCAT和MYSQL的连接解…
JSP数据库连接池的必要性
通过JDBC连接oracle数据库的…
Tomcat4的数据库连接池配置
数据库连接池Java实现小结
用连接池提高Servlet访问数据…
JSP数据库连接大全
利用weblogic的POOL(连接池…
JDBC接口技术
网友评论:
(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
|
设为首页
|
加入收藏
|
联系站长
|
友情链接
|
版权申明
|
管理登录
|
Copyright ©2000 - 2005
Enadd
.com
备案序号:辽ICP备06005595号
QQ:1656107
站长:
enadd