数据库连接池的基本原理

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库连接池的基本原理

——以JAVA应用程序开

发为例

本文关键词:原理连接池数据库

传统的数据库连接方式(指通过DriverManager和基本实现DataSource 进行连接)中,一个数据库连接对象均对应一个物理数据库连接,数据库连接的建立以及关闭对系统而言是耗费系统资源的操作,在多层结构的应用程序环境中这种耗费资源的动作对系统的性能影响尤为明显。

在多层结构的应用程序中通过连接池(connection pooling)技术可以使系统的性能明显得到提高,连接池意味着当应用程序需要调用一个数据库连接的时候,数据库相关的接口通过返回一个重用数据库连接来代替重新创建一个数据库连接。通过这种方式,应用程序可以减少对数据库连接操作,尤其在多层环境中多个客户端可以通过共享少量的物理数据库连接来满足系统需求。通过连接池技术应用程序不仅可以提高系统性能同时也为系统提高了可测量性。

数据库连接池是运行在后台的,而且对应用程序的编码没有任何的影响。此中状况存在的前提是应用程序必须通过DataSource对象(一个实现

javax.sql.DataSource接口的实例)的方式代替原有通过DriverManager类来获得数据库连接的方式。一个实现javax.sql.DataSource接口的类可以支持也可以不支持数据库连接池,但是两者获得数据库连接的代码基本是相同的。

代码如下:

一个DataSource对象通常注册在JNDI命名服务上,应用程序可以通过标准的方式获得到注册在JNDI服务上的DataSource对象。

Context ctx = new InitialContext();

DataSource ds = (DataSource) ctx.lookup("jdbc/openbase");

如果当前DataSource不支持数据库连接池,应用程序将获得一个和物理数据库连接对应的Connection对象。而如果当前的DataSource对象支持数据库连接池,应用程序自动获得重用的数据库连接而不用创建新的数据库连接。重用的数据库连接和新建立连接的数据库连接使用上没有任何不同。应用程序可以通过重用的连接正常的访问数据库,进行访问数据的操作,完成操作后应显式的调用close()关闭数据库连接。

Connection con = ds.getConnection("User", "Pwd");

相关数据库的操作:

con.close();

当关闭数据连接后,当前使用的数据库连接将不会被物理关闭,而是放回到数据库连接池中进行重用。

相关文档
最新文档