java-数据库连接池

数据库连接是一种关键的有限的昂贵的资源,每次的创建和关闭都是资源的消耗:

 

以前的的每次连接流程:

 

 

 三次握手,mysql执行,四次握手

使用连接池:

 

 

 

连接池中的连接只会一直存在,只是可能不被使用罢了,

减少新建连接和关闭连接的操作,执行SQL语句只需执行即可

 

连接池的流程:

复制代码
1在系统初始化时,连接池会根据系统配置建立,并在池中创建了几个连接对象,以便使用时能从连接池中获取

2当客户请求数据库连接时,首先查看连接池中是否有空闲连接,如果存在空闲连接,则将连接分配给客户使用;
2如果没有空闲连接,则查看当前所开的连接数是否已经达到最大连接数,如果没达到就重新创建一个连接给请求的客户;
2如果达到就按设定的最大等待时间进行等待,如果超出最大等待时间,则抛出异常给客户。

2当客户释放数据库连接时,先判断该连接的引用次数是否超过了规定值
如果超过就从连接池中删除该连接
,否则保留为其他客户服务。 33当应用程序退出时,关闭连接池中所有的连接,释放连接池相关的资源,该过程正好与创建相反
复制代码

 

入下图:

 

 

java常见的连接池:

有dbcp、druid、HikariCP、tomcat-jdbc、c3p0

对比

性能从高到底分别是:HikariCP、druid、tomcat-jdbc、c3p0

 

posted @   小丑quan  阅读(347)  评论(0)    收藏  举报
点击右上角即可分享
微信分享提示