连接池

连接池

自定义连接池

创建一个可以存储连接的list

规定初始线程数量

最大线程数量

Int 正在使用中线程的数量

构造{通过deiverManager获取连接}

循环(初始数量)创建连接

       正在使用中线程的数量++;

       List.addLast(conn)

判断 如果正在使用中线程的数量>最大线程数量:renturn null

       如果>初始线程数量&&<最大线程数量

              创建信的连接并返回conn

Return list.removeFirst();

创建连接的时候要注意close方法要代理,不然就关闭了。

回收连接

传一个连接进来

如果正在使用中线程的数量>初始线程数量  <最大线程数量进行关闭

如果正在使用中线程的数量<=3 加入到listLast中

代理

简单说下代理:就是想要覆盖一个类中的某个方法。你觉得丫写的方法糟透了,就这么办吧。

Proxy 类加载器,类,new Inter…

DBCP

导入两个jar包:pool、dbcp

BasicDataSource()  硬编码

BasicDataSourceFactory.createDataSource(instream_property) 配置文件

C3P0

导入两个jar包:c3p0 和 dbcp

ComboPooledDataSource  硬编码

自动加载src下c3p0的配置文件【c3p0-config.xml】 配置文件

原文地址:https://www.cnblogs.com/core404/p/5786074.html