gpt4 book ai didi

java - 是否可以(如何)在使用 spring 数据的同一项目上使用不同的 jdbc 驱动程序?

转载 作者:行者123 更新时间:2023-11-29 09:26:29 25 4
gpt4 key购买 nike

我的 application.properties 中有这些:

spring.first.datasource.jdbc-url=jdbc:oracle:thin:first-datasource-url
spring.first.datasource.username=user1
spring.first.datasource.password=pass1
spring.first.datasource.driver-class-name=oracle.jdbc.OracleDriver

spring.second.datasource.jdbc-url=jdbc:oracle:thin:second-datasource-url
spring.second.datasource.username=user2
spring.second.datasource.password=pass2
spring.second.datasource.driver-class-name=oracle.jdbc.OracleDriver

问题是一个数据库与 ojdbc6 兼容,而另一个与 ojbc8 兼容。有什么方法可以为每个 DataSource 配置明确版本或 jar 吗?

这是我的配置文件:

@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "firstEntityManagerFactory",
transactionManagerRef = "firstTransactionManager",
)
public class FirstConfiguration {

@Bean(name = "firstDataSource")
@ConfigurationProperties(prefix = "spring.first.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}

@Bean(name = "firstEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean barEntityManagerFactory(EntityManagerFactoryBuilder builder,
@Qualifier("firstDataSource") DataSource dataSource) {
return builder.dataSource(dataSource).build();
}

@Bean(name = "firstTransactionManager")
public PlatformTransactionManager firstTransactionManager(
@Qualifier("firstEntityManagerFactory") EntityManagerFactory firstEntityManagerFactory) {
return new JpaTransactionManager(firstEntityManagerFactory);
}

@Bean(name = "firstJdbcTemplate")
public JdbcTemplate jdbcTemplateFirst(@Qualifier("firstDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}

}

最佳答案

如果是ojdbc6.jar文件,驱动类名是oracle.jdbc.OracleDriver

在 ojdbc8 的情况下,驱动类名称是 oracle.jdbc.driver.OracleDriver

您可以看到这两个类的区别,所以我认为只要类名不同,您就可以在应用程序中使用这两个 jar 文件。

我假设在 ojdbc6.jar 的情况下,属性名称可以是

spring.first.datasource.driver-class-name=oracle.jdbc.OracleDriver

如果是 ojdbc8.jar,它将是

spring.second.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver

关于java - 是否可以(如何)在使用 spring 数据的同一项目上使用不同的 jdbc 驱动程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58858329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com