测试 C3P0 数据库连接池时出现异常:java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
测试代码:
public void testConnection() throws Exception {
// 获取C3P0数据库连接池
ComboPooledDataSource dataSource = new ComboPooledDataSource();
dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/test?serverTimezone=Asia/Shanghai");
dataSource.setUser("root");
dataSource.setPassword("123456");
// 设置数据库连接池初始连接数
dataSource.setInitialPoolSize(10);
// 获取连接
Connection conn = dataSource.getConnection();
System.out.println(conn);
}
异常原因:缺少 mchange-commons-java-版本号.jar
包
解决方案:导入相应 jar 包
注意:jar 包版本最好相适应。比如我使用的 C3P0 是 c3p0-0.9.5.2.jar
,与之相适应的是 mchange-commons-java-0.2.11.jar
。可以到 https://mvnrepository.com 查询。
解决异常之后测试顺利完成: