一. 数据库管理的工具类
包含以下的方法:
- 获取连接和是释放连接的方法
- 通过第三方的数据库连接池实现数据库连接的管理,提高效率
二.C3P0数据库连接池的创建步骤
1.导入连接池的jar包
C3P0:jar包放在libs文件夹里面,C3P0的配置文件放在src类路径下
DBCP:如果是DBCP,需放入jar包和另一个依赖包,下一篇会讲到
2. 修改c3p0-config.xml
设置url地址,修改数据库的账号密码
3. 一个项目中只能有一个连接池
4. 获取连接时,从连接池获取
三. 例子
项目结构如下:
c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- named-config的name属性值就是当前配置的一套配置名
在创建连接池时可以根据配置名加载此套配置信息
-->
<named-config name="webDataSource">
<property name="jdbcUrl">jdbc:mysql://localhost:3306/myemployees?rewriteBatchedStatements=true
</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="user">root</property>
<property name="password">123456</property>
<!-- 最小连接数 -->
<property name="minPoolSize">5</property>
<!-- 最大连接数 -->
<property name="maxPoolSize">30</property>
<!-- 初始化的连接数 -->
<property name="initialPoolSize">10</property>
<!-- 需要时一次性创建的连接数 -->
<property name="acquireIncrement">5</property>
<!-- 缓存多少个Statement对象 -->
<property name="maxStatements">15</property>
</named-config>
</c3p0-config>
JDBCUtils.java
package com.atguigu.utils;
import java.sql.Connection;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class JDBCUtils {
//需要使用的数据库连接池来自于第三方,创建对象时使用c3p0的连接实现类
private static DataSource source = new ComboPooledDataSource("webDataSource");
//获取连接的工具方法
public static Connection getConn() {
Connection conn = null;
try {
conn = source.getConnection();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}
//管理连接,以后的操作是通过第三方的工具DBUtils实现数据的增删改查
public static void closeConn(Connection conn) {
if(conn != null) {
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
TestJDBCUtils.java
package com.atguigu.test;
import java.sql.Connection;
import org.junit.jupiter.api.Test;
import com.atguigu.utils.JDBCUtils;
class TestJDBCUtils {
//测试获取连接的工具类
@Test
public void test01() {
Connection conn = JDBCUtils.getConn();
System.out.println(conn);
JDBCUtils.close();
}
}