我的服务器版本是8.0.12的,驱动jar包官网只能下在8.0.18的但是听说好像是向下兼容的
c3po的配置文件
<?xml version="1.0" encoding="utf-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="user">root</property>
<property name="password">123456</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">10</property>
<property name="checkoutTimeout">3000</property>
</default-config>
<named-config name="otherc3p0">
<property name="user">root</property>
<property name="password">123456</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/test</property>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<!-- 如果池中数据连接不够时一次增长多少个 -->
<property name="acquireIncrement">5</property>
<!-- 初始化数据库连接池时连接的数量 -->
<property name="initialPoolSize">20</property>
<!-- 数据库连接池中的最大的数据库连接数 -->
<property name="maxPoolSize">25</property>
<!-- 数据库连接池中的最小的数据库连接数 -->
<property name="minPoolSize">5</property>
<property name="checkoutTimeout">3000</property>
</named-config>
</c3p0-config>
主程序
package cn.HSY;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.SQLException;
public class DataSoure01
{
public static void main(String[] args) throws SQLException
{
DataSource dataSource=new ComboPooledDataSource();
Connection connection=dataSource.getConnection();
System.out.println(connection);
}
}
根据你提供的配置文件和代码,可以看出可能存在以下问题:
驱动未加载:虽然配置文件中设置了驱动为com.mysql.jdbc.Driver,但是需要确保对应的驱动jar包已经被加载到当前项目中。可以在代码中使用Class.forName("com.mysql.jdbc.Driver")加载驱动,或者使用maven等工具自动加载。
配置文件未读取:在创建ComboPooledDataSource对象时,需要指定配置文件的路径。如果未指定,默认会读取c3p0-config.xml,如果配置文件不在默认路径下,则需要使用以下方式加载配置文件:
ComboPooledDataSource dataSource = new ComboPooledDataSource("otherc3p0"); // 指定使用named-config中的配置
数据库连接字符串错误:如果数据库连接字符串不正确,也会导致无法获取连接对象。请确保数据库相关信息正确,如:地址、端口、数据库名称、用户名、密码等。
综上,如果以上方法均无法解决问题,建议检查c3p0版本与MySQL服务端版本的兼容性,或者尝试使用其他的连接池。