首先介绍使用连接池的好处
在WEB开发中,使用连接池相对于普通的jdbc方式访问数据库可以成倍的增加数据库的访问效率。
JDBC方式访问数据库较慢的原因
使用JDBC方式访问数据库的时候,每次访问都必须要和数据库建立连接,而连接是可以被复用的,因此,JDBC方式在这个过程中浪费了时间,从而访问效率降低.
连接池增加数据访问效率的原理
使用连接池的时候,可以通过配置web.xml文件使得服务器在启动的时候即创建一定数量的连接【相当于设计模式中的饿汉模式】并存储于连接池中【一块存储区域,这里只是有个名称而已,没有特殊的含义】,因此当需要使用的时候可以直接从连接池中获取实例,用完后必须要释放连接实例【只是将连接放回了连接池,并没有真正的关闭这个和数据库的连接】,因为数据库的连接是有限的;
使用连接池时需要注意的问题
使用连接池的时候需要手动关闭连接?
首先确定以下几个概念:
1、连接池即使回收Connection,也不是马上释放,而是会过一阵子才释放;
2、连接池概念本身是代为管理Connection,当我们使用close()关闭连接时,只是把该连接放回了连接池中,并没有真正的关闭这个连接;
3、Connection Pool在有外来请求,而没有空闲的Connection时,会按照时间顺序回收Connection,而不是全部回收;
因此,基于连接池数量有限的前提,即使是连接池中的连接,在使用完毕之后也要手动进行关闭。
下面将通过图解的方式对连接池和JDBC两种方式进行说明
案例链接:Oracel连接池案例代码