有人可以告诉我我缺少什么吗?我正在尝试在 Spring MVC 项目中使用 JavaConfig 来设置以下数据库,但我无法设置驱动程序类、用户、密码等?
谁能告诉我为什么
@Bean
public DataSource dataSource() {
DataSource ds = new DriverManagerDataSource();
try {
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setUser("jboss");
ds.setPassword("xoJ4u0Hs");
ds.setJdbcUrl("jdbc:mysql://6dhdbm01/jboss1");
} catch (Exception e) {
logger.error(e.getMessage());
}
return ds;
}
我修复了它:我必须将代码更改为:
@Bean
public DataSource dataSource() {
// com.mchange.v2.c3p0.ComboPooledDataSource ds = new com.mchange.v2.c3p0.ComboPooledDataSource();
BasicDataSource ds = new BasicDataSource();
try {
/*
This was old code for using C3P0 Database pooling
ds.setDriverClass("com.mysql.jdbc.Driver");
ds.setUser("jboss");
ds.setPassword("xoJ4u0Hs");
ds.setJdbcUrl("jdbc:mysql://6dhdbm01/jboss1");
*/
ds.setDriverClassName("com.mysql.jdbc.Driver");
ds.setUsername("jboss");
ds.setPassword("xoJ4u0Hs");
ds.setUrl("jdbc:mysql://6dhdbm01/jboss1");
} catch (Exception e) {
logger.error(e.getMessage());
}
return ds;
}
但是我收到这个错误..我是不是在 maven pom.xml 中遗漏了什么
java.lang.ClassNotFoundException: org.apache.commons.pool.impl.GenericObjectPool
最佳答案
我的猜测:
- 您正在导入 javax.activation.DataSource 而不是 javax.sql.DataSource
- com.mysql.jdbc.Driver 不在类路径中
- URL/凭据错误
但确实没有什么好解决的,首先猜测是编译时间问题,其次是部署时间问题。
编辑:
找不到什么符号?我的猜测是 DriverManagerDataSource 因为它不是核心的一部分,它是 spring-jdbc 的一部分。此外,不会真正推荐 DataSource 实现,因为它不是连接池,它每次都会创建一个新连接,查看 commons-dbcp
关于java - 为什么我不能在 Spring 中使用 JavaConfig 创建我的数据源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16111331/