com.mchange.v2.c3p0.impl.NewProxyConnection cannot be cast to com.mysql.jdbc

今天利用C3P0连接池、自己做的DataSourceUtils工具类做了一个转账操作,运行的时候出现这个错误,都是出现了强转了的,比如:

connection=(Connection)DataSourceUtils.getConnection();

这是报错说的就是类型不匹配,想着可能是导的包不对,然后发现工具类里面导的是 java.sql.Connection ,而dao里面导的是com.mysql.jdbc.connection,

尝试把com.mysql.jdbc.connection改成java.sql.Connection ,就不报错了。

c3p0-config.xml

<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<named-config name="day15">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql:///day15</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="acquireIncrement">10</property>
<property name="initialPoolSize">30</property>
<property name="minPoolSize">5</property>
<property name="maxPoolSize">40</property>
<property name="maxStatements">1000</property>
<property name="maxStatementsPerConnection">100</property>
</named-config>
</c3p0-config>
JdbcUtil


import java.sql.Connection;
import java.sql.SQLException;


import javax.sql.DataSource;


import com.mchange.v2.c3p0.ComboPooledDataSource;


public class JdbcUtil {
private static ComboPooledDataSource ds=new ComboPooledDataSource("day15");
public static DataSource getDataSource(){

return ds;
}
public static Connection getConnection() {
try {
return ds.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public static void release(Connection conn) throws SQLException{
if(conn!=null){
conn.close();
}
}
}

根据提供的引用内容,出现这个错误是因为找不到com.mchange.v2.c3p0.ComboPooledDataSource类。这个类是c3p0连接池库的一部分,它可能没有正确地添加到项目的构建路径中。 解决这个问题的方法是确保c3p0库已经正确地添加到项目中。以下是一些可能的解决方法: 1. 确认c3p0库已经正确地添加到项目的构建路径中。可以通过以下步骤来添加库: - 在Eclipse中,右键单击项目,选择"Properties"。 - 在"Java Build Path"选项卡中,选择"Libraries"选项卡。 - 点击"Add External JARs"按钮,然后选择c3p0库的JAR文件。 - 点击"Apply"按钮保存更改。 2. 如果c3p0库已经添加到项目中,但仍然出现错误,请确保库的版本与项目的其他依赖项兼容。有时候不同版本的库之间可能会有冲突。 3. 如果以上方法都没有解决问题,可以尝试重新下载并添加最新版本的c3p0库。 以下是一个示例代码,演示了如何使用c3p0连接池创建ComboPooledDataSource对象: ```java import com.mchange.v2.c3p0.ComboPooledDataSource; public class Example { public static void main(String[] args) { ComboPooledDataSource cpds = new ComboPooledDataSource(); // 设置连接数据库的相关配置 cpds.setDriverClass("com.mysql.jdbc.Driver"); cpds.setJdbcUrl("jdbc:mysql://localhost:3306/mydatabase"); cpds.setUser("username"); cpds.setPassword("password"); // 使用连接池获取数据库连接 Connection conn = cpds.getConnection(); // 执行数据库操作 // 关闭连接 conn.close(); } } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值