使用DataSouceBuilder时我不支持DataSource

发布于 2021-01-29 20:43:35

我是Spring-Batch(和一般的Spring)的新手,并且一直在关注在线文档,以教自己如何完成此任务。我正在尝试连接到DB2数据库。

如果我这样声明XML的DB2连接:

    <bean id="wcs_dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.ibm.db2.jcc.DB2Driver" />
    <property name="url" value="jdbc:db2://127.0.0.1/DEV" />
    <property name="username" value="user" />
    <property name="password" value="pass5" />
</bean>

然后将其加载到我的代码中,如下所示:

@Bean
    public JdbcCursorItemReader<Product> databaseItemReader() {             
        ApplicationContext context = 
                 new ClassPathXmlApplicationContext("context-datasource.xml");
        DataSource dataSource = (DataSource) context.getBean("wcs_dataSource");
        ((ConfigurableApplicationContext)context).close();

        JdbcCursorItemReader<Product> result = new JdbcCursorItemReader<Product>();
        result.setDataSource(dataSource);
        result.setSql(sqlString);
        result.setRowMapper(new ProductRowMapper());
        return result;
    }

完美运作。如示例所示,我想如何使用DataSourceBuilder,所以最终我想去:

@ConfigurationProperties(prefix="DEV.datasource")
public DataSource Wcs_DataSource(){
  return DataSourceBuilder.create().build();
}

但是由于某种原因,它不起作用。我懂了

原因:java.lang.IllegalStateException:找不到支持的数据源类型

我也尝试过:

public DriverManagerDataSource dataSource() {               
    DataSourceBuilder DSBuilder = DataSourceBuilder.create();   
    DSBuilder.url("jdbc:db2://127.0.0.1/DEV");
    DSBuilder.username("user");
    DSBuilder.password("password");
    DSBuilder.driverClassName("com.ibm.db2.jcc.DB2Driver");
    DriverManagerDataSource result = (DriverManagerDataSource) DSBuilder.build();
    return result;      
}

而且我得到同样的错误。如果我在调试器中运行它,则可以看到该错误发生在.build()上。

我确定我缺少一些简单的东西,但是我无法弄清楚。

关注者
0
被浏览
62
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    迪努姆先生回答了。我的依赖项中缺少commons-dbcp!我觉得这很容易。

    要使用DataSourceBuilder,您需要在类路径上具有 commons-dbcptomcat-jdbchikaricp
    ,否则它将不起作用。我没有其中一个,您会在收到消息时立即得到消息。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看