我在使用 DataSouceBuilder 时收到数据源不受支持
2022-09-03 09:41:51
我是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()上。
我确信我错过了一些容易的东西,但我无法弄清楚。