当前位置:  技术问答>java相关

转贴:从一个ConnectionPool的实现看Design Pattern的运用

    来源: 互联网  发布时间:2015-09-15

    本文导语:  从一个ConnectionPool的实现看Design Pattern的运用 (一) 作者:ajoo 什么是ConnectionPool? 我们知道,JDBC提供了java.sql.Connection interface, 供我们连接不同的数据源。但是,因为与数据库建立连接是一个很大的开销,所以,我...

从一个ConnectionPool的实现看Design Pattern的运用 (一)

作者:ajoo

什么是ConnectionPool? 我们知道,JDBC提供了java.sql.Connection interface, 供我们连接不同的数据源。但是,因为与数据库建立连接是一个很大的开销,所以,我们可以把已打开的数据库连接缓存在一个连接池中,供后续的 Connection用户使用。用户使用完Connection后,再把它返还到连接池中。
对一个连接池,有许多功能上的考虑。
1. 如是否设置一个最大连接数,以保证数据库不会因同时过多的连接请求而瘫痪;
2. 是否设置一个最小连接数,以保证任何时刻都至少有若干个连接可用;
3. 是否设置一个最多的空闲连接数,空闲连接超过这个数的就关闭过多的连接;
4. 当对一个连接的请求不能被满足时,是否让请求同步等待,还是直接返回一个错误。
5. 怎样保证公平性,也就是说,一个对连接的同步请求会在一定的时间内得到x响应,而不是被饿死。
6. 连接池是用vector, list还是其他的什么Collection对象来实现。
等等等等。
下面,让我们来看看一个ConnectionPool的实现:
public class ConnectionPool
{
private final Vector pool = new Vector();
private int clients;
private int maxClients;
其他的一些连接属性如username, password, dsn等等;

public synchronized Connection getConnection()
{
如果pool里有Connection
从pool中去掉一个Connection conn;
clients++;
return conn;
否则,如果clients

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • web程序出错后,错误提示后面跟着的数字(25)是什么意思?(ConnectionPool.java:25)
  • Snap-ConnectionPool
  • tomcat 如何使用connectionpool
  • 我找了个ConnectionPool,请问怎么用呢?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3