前言:
本文介绍JDBC中常见的几种连接池jar包使用 C3P0、Druid、HikariCP 、DBCP
初学者在学习连接池的时候很少用maven项目添加依赖,下面介绍的都是原始
的jar包使用,配置文件放src路径下
1,什么是连接池?连接池的作用
连接池是一种用于管理数据库连接的技术,它具有以下好处:
1,提高性能:连接池可以重复使用已经建立的数据库连接,避免了每次请求都需要重新建立连接的开销。这样可以减少连接的创建和销毁次数,提高了数据库操作的效率。
2,节省资源:连接池可以控制同时存在的数据库连接数量,避免了过多的连接占用系统资源,提高了系统的稳定性和可靠性。
3,提升并发能力:连接池可以管理多个数据库连接,使得多个请求可以同时进行数据库操作,提高了系统的并发能力。
4,降低系统压力:连接池可以对数据库连接进行管理和监控,可以检测到连接的空闲时间和超时时间,及时释放无用的连接,避免了因为连接过多而导致系统崩溃或性能下降的问题。
5,提供连接的复用:连接池可以将连接分配给不同的请求,实现连接的复用,减少了连接的创建和销毁的次数,提高了系统的性能和效率。
总的来说,使用连接池可以提高系统的性能、稳定性和并发能力,节省系统资源,降低系统压力,提高数据库操作的效率
:
2, Druid连接池
德鲁伊jar下载博主使用的是1.2.0版本
repo1.maven.org/maven2/com/alibaba/druid/
添加配置文件文件名不固定
🌸 配置文件
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/java001?useServerPrepStmts=true
username=root
password=root
initialSize=10 # 启始连接数
maxActive=30 # 最大连接数
maxIdle=500 # 最大空闲时间
maxWait=1000 # 最大等待时间
:
🌸测试
@Test
public void testDruid() throws Exception {
// 创建配置文件对象
Properties properties = new Properties();
// 创建一个文件输入流指向配置文件
FileInputStream inputStream = new FileInputStream("src\\jdbc.properties");
// 加载配置文件
properties.load(inputStream);
// 工厂包装类创建数据源
DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
System.out.println(dataSource.getConnection());
}
;
3,C3P0连接池
下载地址:
https://sourceforge.net/projects/c3p0/
🌸 配置文件
<c3p0-config>
<!--使用默认的配置读取数据库连接池对象 -->
<default-config>
<!-- 连接参数 -->
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/java001?useServerPrepStmts=true</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 连接池参数 -->
<!--初始化申请的连接数量-->
<property name="initialPoolSize">5</property>
<!--最大的连接数量-->
<property name="maxPoolSize">10</property>
<!--超时时间-->
<property name="checkoutTimeout">3000</property>
</default-config>
<named-config name="otherc3p0">
<!-- 连接参数 -->
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/java001?useServerPrepStmts=true</property>
<property name="user">root</property>
<property name="password">root</property>
<!-- 连接池参数 -->
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">8</property>
<property name="checkoutTimeout">1000</property>
</named-config>
</c3p0-config>
:
🌸测试
@Test
public void testC3p0() throws SQLException {
// 使用named-config命名的配置,默认不用传入
ComboPooledDataSource comboPooledDataSource =
new ComboPooledDataSource("otherC3p0");
Connection connection = comboPooledDataSource.getConnection();
System.out.println(connection);
}
:
OK,以上就是JDBC连接池Druid,C3P0的全部内容了