认识连接池

一、概念

为应用程序创建固定数量的连接对象,保存在池中进行复用。每次访问时从池中获取已存在,使用完毕后,返回池中。

 

二、意义

首先我们要明白,“建立数据库连接”是相当耗费资源和时间的,同时,建立数据库连接的数量也是有限的(所以在初学的时候,很多忘了写关闭连接的朋友在刷新应用几次之后发现控制台报错,还找不到原因,但是重启一下电脑或者重开一下Eclipse就好了,这就是因为数据库连接数量的原因,xe版的oracle最多是在7个到10个左右的样子)。

为什么建立数据库连接是相当耗费资源和时间的
首先建立TCP连接;然后TCP协议三次握手的发送与相应;客户端的账户验证,服务器返回确认;用户验证后,需要传输相关连接变量如是否自动提交事务的设置等,会有多次数据的交互,然后才能执行真正的数据查询和更新等操作。

 

三、作用

连接池是采用了预先建立多个数据库连接对象,然后放到连接池里,当有客户端请求时,取出一个连接对象为客户端服务,当请求完成时,客户端调用.close()方法,将连接对象放回池中。  在普通的数据库连接中,客户端得到的是物理连接,在连接池中,客户端得到的是连接对象,从使用开始到使用结束,连接对象的物理连接始终没有关闭,所以我们在一定程度上减少了建立连接所需要的时间,这对多使用、高并发的网站十分有利。

 

四、使用

初学者,连接池通常要引入相关jar包

然后需要配置一些诸如提交事务等的属性(注意与JDBC的配置不同的是driverClassName,多了一个class)

在Utils文件里需要如下几步进行获取连接对象(通常获取连接对象的时候是写在getConnection方法里,然后加上一些判断条件,当客户端没有结束连接的时候,获取的连接是上一次的事务的连接(利用ThreadLoacl把事务与线程绑到一起),当第一次访问时,则是ds.getConnection())

getConnection方法

    


————————————————
版权声明:本文为CSDN博主「小小小手手啊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41173453/article/details/80032820

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章