数据库连接池的工作机制

今天脑子一抽想到一个问题,就是当连接池中没有空闲连接的时候会新建一定数量的池连接,然后忽然想到如果这时有连接关闭的话是会返回到连接池还是会消失?

紧接着去百度了一下,我去,瞬间感觉自己low比了,空闲下来的连接肯定会返回连接池啊,当然连接池中的池连接也不是无限制的,会有一个上线(一般是自己设置),到达这个上线之后,再想获取池连接的话就只能等待了。

一般来说,J2EE服务器在启动的时候会创建一定数量的池连接,并且一直维持不少于这个数目的池连接。

当客户端程序需要的时候,驱动程序会返回一个没有使用的池连接,并将返回的池连接标记为忙。

如果客户端需要连接,但是当前没有空闲连接,池驱动程序就会创建一定数量的连接,新建连接的数量由配置参数决定。

当使用的池连接调用完成后,池驱动程序将此链接标记为空闲,其他大的调用就可以使用这个连接了。

实现方式,返回的connection是原始的connection的代理,代理connection的close方法不是真正关闭连接,而是把它的代理的connection对象返回到连接池中。

原文地址:https://www.cnblogs.com/blog4wei/p/7418639.html