C3P0的简单实用
测试环境:
-
c3p0-0.9.5.4
-
mysql-connector-java-8.0.15
-
c3p0-0.9.2版本后需导入数据库连接池的辅助包:mchange-commons-java-0.2.3.4.jar
c3p0最新版本下载地址:https://sourceforge.net/projects/c3p0/
不使用配置文件的方式
@Test
public void test01() {
Connection conn = null;
PreparedStatement ps = null;
try {
ComboPooledDataSource cpds = new ComboPooledDataSource();
cpds.setDriverClass("com.mysql.cj.jdbc.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost/wdw87?useSSL = false&serverTimezone = UTC&");
cpds.setUser("root");
cpds.setPassword("root");
//获取连接对象
conn = cpds.getConnection();
String sql = "insert into userdata values(null,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, "wdw87");
ps.setString(2, "1234");
ps.executeUpdate();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
JDBCUtil.release(ps, conn); //此类为博主个人写的工具类
}
}
使用配置文件
配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<!-- This app is massive! -->
<named-config name="mysql">
<!-- 数据库驱动 -->
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<!-- 数据库地址 -->
<property name="jdbcUrl">jdbc:mysql://localhost/wdw87?useSSL=false&serverTimezone=Hongkong&characterEncoding=utf-8&autoReconnect=true</property>
<!-- 用户名 -->
<property name="user">root</property>
<!-- 密码 -->
<property name="password">root</property>
<!-- 无空闲连接可用时,可一次性创建新连接的数量 -->
<property name="acquireIncrement">50</property>
<!-- 连接池初始化时创建的连接数 -->
<property name="initialPoolSize">100</property>
<!-- 连接池中的最小连接数 -->
<property name="minPoolSize">50</property>
<!-- 连接池中的最大连接数 -->
<property name="maxPoolSize">1000</property>
</named-config>
</c3p0-config>
相应代码为:
@Test
public void test01() {
Connection conn = null;
PreparedStatement ps = null;
try {
ComboPooledDataSource cpds = new ComboPooledDataSource("mysql");
//获取连接对象
conn = cpds.getConnection();
String sql = "insert into userdata values(null,?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, "wdw");
ps.setString(2, "1234");
ps.executeUpdate();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
JDBCUtil.release(ps, conn);//此类为博主个人写的工具类
}
}