1

有人可以告诉我我缺少什么我想在 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
4

1 回答 1

3

我的猜测:

  • 您正在导入 javax.activation.DataSource 而不是 javax.sql.DataSource
  • com.mysql.jdbc.Driver 不在类路径中
  • URL / 凭据错误

但真的没有太多可做的,第一个猜测是编译时间问题,第二个是部署时间问题。

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

于 2013-04-19T18:37:01.363 回答