为什么我不能在Spring中使用JavaConfig创建我的数据源?

时间:2013-04-19 18:32:55

标签: java mysql spring maven spring-mvc

有人可以告诉我我错过了什么我试图在Spring MVC项目中使用JavaConfig来设置以下数据库但是我不能设置driverClass,用户,密码等?

有人可以告诉我原因吗

@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

1 个答案:

答案 0 :(得分:3)

我的猜测:

  • 您正在导入javax.activation.DataSource而不是javax.sql.DataSource
  • com.mysql.jdbc.Driver不在classpath
  • 网址/凭据错误
但是真的没什么可说的,首先猜测是编译时问题,第二个是部署时间问题。

编辑: 找不到什么符号?我的猜测是DriverManagerDataSource,因为它不是核心的一部分,它是spring-jdbc的一部分。另外,不会真的推荐DataSource实现,因为它不是连接池,每次都会创建一个新连接,查看commons-dbcp