问题遇到的现象和发生背景
无法适应C3P0
无法适应C3P0
配置文件
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<!-- 数据库地址 -->
<property name="jdbcUrl">jdbc:mysql://你的ip如本地localhost:3306/whd?useSSL=false&serverTimezone=CTT&useUnicode=true&characterEncoding=utf8
</property>
<!-- 数据库驱动 5.7版本前驱动是com.mysql.jdbc.Driver -->
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<!-- 用户名 -->
<property name="user">root</property>
<!-- 密码 你自己的密码-->
<property name="password">123456</property>
<!-- 连接池初始化时创建的连接数 -->
<property name="initialPoolSize">10</property>
<!-- 连接池中的最小连接数 -->
<property name="minPoolSize">3</property>
<!-- 连接池中的最大连接数 -->
<property name="maxPoolSize">100</property>
<!-- 无空闲连接可用时,可一次性创建新连接的数量 -->
<property name="acquireIncrement">10</property>
<!-- 获取数据库连接失败后重复尝试的次数 -->
<property name="acquireRetryAttempts">1</property>
<!-- 两次连接的间隔时间,单位为毫秒 -->
<property name="acquireRetryDelay">1000</property>
</default-config>
</c3p0-config>
Jdbc工具类
import com.mchange.v2.c3p0.ComboPooledDataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.sql.DataSource;
public class JDBCUtils {
private static DataSource ds = new ComboPooledDataSource();
public static DataSource getDataSource() {
return ds;
}
public static Connection getConnection() {
Connection conn = null;
try {
conn = ds.getConnection();
} catch (SQLException var2) {
var2.printStackTrace();
}
return conn;
}
public static void close(PreparedStatement pst, Connection conn, ResultSet rst) {
if (rst != null) {
try {
rst.close();
} catch (SQLException var6) {
var6.printStackTrace();
}
}
if (pst != null) {
try {
pst.close();
} catch (SQLException var5) {
var5.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();
} catch (SQLException var4) {
var4.printStackTrace();
}
}
}
}
测试一下
package test;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import org.junit.Test;
import com.web.tom.Utils.JDBCUtils;
import com.web.tom.entity.Admin;
public class TestJdbc {
private Connection conn;
private PreparedStatement pst;
private ResultSet rst;
private String sql;
@Test
public void getAllAdmin() {
ArrayList<Admin> list = new ArrayList<Admin>();
this.conn = JDBCUtils.getConnection();
this.sql = "select id,username,password from admin";
try {
this.pst = this.conn.prepareStatement(this.sql);
this.rst = this.pst.executeQuery();
while (this.rst.next()) {
Admin admin = new Admin();
admin.setId(this.rst.getInt("id"));
admin.setUsername(this.rst.getString("username"));
admin.setPassword(this.rst.getString("password"));
list.add(admin);
}
JDBCUtils.close(this.pst, this.conn, this.rst);
} catch (SQLException var3) {
var3.printStackTrace();
}finally {
JDBCUtils.close(pst, conn, rst);
}
System.out.println(list);
}
}
得到结果