准备的文件(标红的是需要准备的文件)cp30连接池jar包放入了我的百度网盘Java包下:
工程目录样式
File文件中Project Structure中的Libraries添加红框里面的
File文件中Project Structure中的Mdules勾选这三个内容
修改cp30.xml文件(代码如下)
<?xml version="1.0" encoding="UTF-8"?>
<!--
c3p0-config.xml必须位于类路径下面
private static ComboPooledDataSource ds;
static{
try {
ds = new ComboPooledDataSource("MySQL");
} catch (Exception e) {
throw new ExceptionInInitializerError(e);
}
}
-->
<c3p0-config>
<!--
C3P0的缺省(默认)配置,
如果在代码中“ComboPooledDataSource ds = new ComboPooledDataSource();”这样写就表示使用的是C3P0的缺省(默认)配置信息来创建数据源
-->
<default-config>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db1?allowPublicKeyRetrieval=true&serverTimezone=UTC</property>
<property name="user">root</property>
<property name="password">123321</property>
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">20</property>
</default-config>
<!--
C3P0的命名配置,
如果在代码中“ComboPooledDataSource ds = new ComboPooledDataSource("MySQL");”这样写就表示使用的是name是MySQL的配置信息来创建数据源
-->
<named-config name="MySQL">
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/db1?allowPublicKeyRetrieval=true&serverTimezone=UTC</property>
<property name="user">root</property>
<property name="password">123321</property>
<property name="acquireIncrement">5</property>
<property name="initialPoolSize">10</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">20</property>
</named-config>
</c3p0-config>
修改的地方
需要的两个.class文件和代码(其实就是昨天封装好了的数据库加载驱动获取连接的地方换了种方式)
代码
package a.c3p0;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcUtile_3p0 {
//定义连接池
private static DataSource ds = null;
//获取连接
static {
// ds = new ComboPooledDataSource(;//使用默认的配置
//使用自动的配置
ds = new ComboPooledDataSource("MySQL");
}
// 获取连接
public static Connection getConnection(){
// 从c3p0连接池中获取连接
Connection connection = null;
try {
connection = ds.getConnection();
} catch (SQLException e) {
System.out.println("获取c3p0连接池失败。。。。。。。。。");
e.printStackTrace();
}
return connection;
}
// 关闭资源
public static void colse(Connection connection, Statement statement) {
if (connection != null){
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("连接关闭出现异常。。。。。。");
}
}
if (statement != null){
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
System.out.println("关闭执行对象出现异常。。。。。。。");
}
}
}
}
---------------------------------------这里是文件分割线条----------------------------
package a.c3p0;
import java.sql.Connection;
public class C30poTest {
public static void main(String[] args) {
Connection connection = JdbcUtile_3p0.getConnection();
System.out.println(connection);
}
}
运行结果:
注意
这里使用的工程是舒老师的工程而不是雷老师空工程,否则回找不到cp30.xml文件,文件路径问题。以下是舒老师的新建工程的方法
1)
2)
3)