一、数据库连接池项目中如果需要多个连接,如果一直获取连接,断开连接,这样比较浪费资源,如果创建一个池,用池来管理Connection,这样就可以重复使用Connection。有了池我们就不用自己来创建Connection,而是通过池来获取Connection对象。当使用完Connection后,调用Connection的close()方法也不会真的关闭Connection,而是把Connection“归还”给池。池就可以再利用这个Connection对象了。
这里我们常用的连接池有两种,分别是:DBCP连接池和C3P0连接池连接池
原理:LinkedList(10)—插入、删除快,头尾New Connecton();
Add()
拿连接:removeFirst()
归还:addLast();
共同点:连接池配置文件–url,username,pwd,最多的连接数,初始的连接1) Xml – 根节点,子节点
2) Properties key=value — 读取文件 — IO流
方向:Input Output文件 ----- 》 程序 输入流(read())
1、C3P0:大提高应用程序和数据库之间访问效率的
1)jar包
2)src下创建配置文件 c3p0-config.xml<?xml version="1.0" encoding="UTF-8"?>
连接用完了自动增加数量
初始化连接数量
最少连接数
最多连接数
3)ComboPooledDataSource–getConnnection()
2、DBCP
1)commons-dbcp2-2.1.1.jar 、commons-logging-1.2.jar、
commons-pool2-2.4.2.jar
2)dbcp.properties
driverClassName=
url=
username=root
password=
initialSize=30
maxTotal=30
maxIdle=10
minIdle=5
maxWaitMillis=1000
#程序中的连接不使用后是否被连接池回收
removeAbandonedOnMaintenance=true
removeAbandonedOnBorrow=true
3) 读取properties文件–Properties.load()
4)BasicDataSourceFactory–createDataSource
3、DBUtils-JDBC工具组成:DbUtils类:连接数据库对象QueryRunner类——SQL语句的操作对象QueryRunner(DataSource)
DataSource:数据连接池对象ResultSetHandler接口——将封装结果集中的数据,转换到另一个对象实现类:
1)BeanHandler(Class<?Extends T>)指定结果集填充对象类型?Extends T——应用时:给定的具体类型应该为T的子类(上限)
2)BeanListHandler获得对象集合:ResultSetHandler<List>=new BeanListHandler
数据库连接池的方式
最新推荐文章于 2021-12-30 10:09:34 发布