一种简单JDBC连接池的实现
作者:未知 发布时间:2005-05-12 来源:JSP天空网
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: 结果集游标。 分别存在以下的关系 : 这是一种 ‘爷-父-子’ 的关系,对Connection的管理,就是对数据库资源的管理。举个例子: 如果想确定某个数据库连接(Connection)是否超时,则需要确定其(所有的)子Statement是否超时,同样,需要确定所有相关的ResultSet是否超时;在关闭Connection前,需要关闭所有相关的Statement和ResultSet。 因此,连接池(Connection Pool)所起到的作用,不仅仅简单地管理Connection,还涉及到 Statement和ResultSet。 2.3连接池(ConnectionPool)与资源管理 ConnectionPool以缓冲池的机制,在一定数量上限范围内,控制管理Connection,Statement和ResultSet。任何数据库的资源是有限的,如果被耗尽,则无法获得更多的数据服务。 在大多数情况下
您可能关注的文档
最近下载
- 山桐子种植加工、旅游项目可行性研究报告商业计划书.docx VIP
- 山桐子种植及种苗培育种植加工可行性研究报告申请备案.doc VIP
- 和田地区2026年度地直机关公开遴选公务员、事业单位公开选聘工作人员备考题库及完整答案详解1套.docx VIP
- 山桐子合作种植协议合同.docx VIP
- 2025年香氛未来趋势报告-英敏特.docx VIP
- 报告正文2014年太阳绿宝.pdf VIP
- 2025年高考:云南物理--试题及答案.pdf VIP
- 广东省深圳市宝安区2025-2026学年五年级上学期期末学业质量评估语文试卷.docx VIP
- (2025)山桐子产业开发生产建设项目可行性研究报告(一).docx VIP
- 2024-2025学年广东省东莞市统编版三年级上册期末考试语文试卷.pdf VIP
原创力文档

文档评论(0)