<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="user" value="root"></property>
<property name="password" value="mysql"></property>
<property name="driverClass" value="com.mysql.cj.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property>
</bean>
public static void main(String[] args) throws SQLException {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans-properties.xml") ;
DataSource dataSource = (DataSource) ctx.getBean("dataSource") ;
System.out.println(dataSource.getConnection());
}
错误一:
导入c3p0jar
出现如下错误(截取第一句错误提示)
Exception in thread "main" org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'dataSource' defined in class path resource [beans-properties.xml]:
Instantiation of bean failed; nested exception is java.lang.NoClassDefFoundError: com/mchange/v2/ser/Indirector
经排查,jar包导入不全:
要将c3p0的lib文件夹下的包全部导入,至少第一个和第三个要导入。
导入后再次运行:错误解除,成功获取到连接
错误二:
解决了jar包不全的问题之后,又出现了出现了新的错误
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(Unknown Source)
经一系列排查,发现是一个低级错误!希望看到这篇文章的人能够记住这个错误。
<property name="jdbcUrl" value="jdbc:mysql//localhost:3306/test"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/test"></property>
看出来两个配置的区别了没。url写错了!!!下面的那个是正确的,上边那个是错误的。少了个:冒号。至此,错误排查结束。
果然是5分钟写代码,一小时查bug。
感谢这位博主的指点:https://www.cnblogs.com/mythdoraemon/p/7397839.html