Chinaunix首页 | 论坛 | 博客
  • 博客访问: 668067
  • 博文数量: 79
  • 博客积分: 2608
  • 博客等级: 少校
  • 技术积分: 889
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-19 23:57
个人简介

一家之计在于和,一生之计在于勤。

文章分类

全部博文(79)

文章存档

2022年(2)

2019年(1)

2017年(1)

2015年(2)

2014年(2)

2013年(2)

2012年(2)

2011年(6)

2010年(20)

2009年(13)

2008年(28)

分类: 数据库开发技术

2009-02-08 14:48:36

数据库连接池的基本原理
                            ——以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();
  当关闭数据连接后,当前使用的数据库连接将不会被物理关闭,而是放回到数据库连接池中进行重用。    
 
阅读(6064) | 评论(0) | 转发(0) |
0

上一篇:透明的flash

下一篇:虚拟机上的网络配置

给主人留下些什么吧!~~