java 数据库连接原理_数据库连接池原理及其JAVA实现

用完后将连接返回池中从池中删除该连接N已用次数是否小于可用次数?取出可用连接是否有可用连接?Y连接N……连接2连接3连接1该连接已用次数加1将该连接标记为已用Jsp、Servlet等使用该连接Y初始化一定连接数量的连接池DBMS是否达到池连接数上限?等待后重试Y加入新连接到池中NNSQLServerOracle等图1连接池工作原理图Java是一种分布式跨平台的网络语言,它有一个庞大的Java.net类库支持网络间的通信。Java利用特有的虚拟机技术实现了平台无关性,通过Java能很容易地取得远程主机上的资源。Java也是一种Web程序语言,可将编译过的Java类文件放置于网络服务器中进行调用。网络上任何机器都可以通过浏览器进行调用。本文将讨论如何利用Java及数据库连接池(Pool)技术在分布式环境中使应用系统更具有延展性及较高的执行效率,并通过系统自身的管理机制监视数据库连接的数量、使用情况等。1传统JDBCAPI连接数据库的缺点传统的JDBC连接数据库的方法为:首先,建立数据库连接;然后,利用SQL语句对数据进行操作;最后,断开数据库连接。这种连接方法在分布式计算环境下存在很大的问题。当使用分布技术实现一个Inter-net/Intranet应用系统时,预先不知道会有多少用户同时上线使用该系统。当使用该系统的人数太多时,系统开销是相当大的。事实上,在一个基于数据库的Web系统中,建立和释放数据库连接的操作将是系统中代价最大的操作之一。随着连接人数的增多,将导致数据库系统中的内存泄露,最终可能导致系统瘫痪。利用连接池(Pool)技术可以有效地解决这个问题,提高系统的效率。2连接池技术原理连接池(Pool)技术实际上是在一个容器对象中建立一定数目的资源对象,例如数据库连接对象、企业对象等。当客户端应用程序需要使用这些资源的时候,从中取出资源对象供客户端应用程序使用。当客户端使用完毕后再把资源放回容器中,避免重新释放资源对象所花费的时间。并且等到其他客户端应用程序需要这些资源对象时再从容器对象中取出这些资源对象供客户端使用,免除重新建立资源对象的时间。连接池工作原理如图1所示。首先应当初始化内含一定连接数量的连接池;在使用过程中如果池中的连接数量不够,再逐渐加入新的连接。由于池中的连接数量不能是无限的,当达到最大数量时,池中就不能再加入新的连接。此时如果连接数量仍然不够,就只能等待别的连接被释放后使用,即定义连接池中连接数量的上下界。定义上下界可根据客户端的情况动态地使用资源,提高系统的效率。另外,同一个连接如果被使用的次数太多,可能会导致该连接的不稳定。所以需要设定一个连接可使用的最大次数。当使用次数达到12最大次数后就将该连接关闭并从池中删除。在连接不够用的情况下可以生成一个新的连接加入到池中。3连接池程序的具体实现根据上述原理便可编写自己连接池的Java类。本文采用二个类实现连接池的管理和使用。一个是Dbconn类,用来管理一个连接的状态;另外一个为Dbpool类,用来实现对连接池的管理。Dbconn类具体实现如下:classDbconnimplementsjava.io.Serializable狖privateConnectionconn=null;privatebooleanisuse=false;privateintconnusenumb=0;publicDbconn()狖狚publicDbconn(Connectioncon)狖if(con。=null)conn=con;狚publicConnectiongetConnection()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值