所有,
我正在尝试使用Spring Boot创建Oracle DB的数据源。我收到以下错误:
org.springframework.boot.autoconfigure.jdbc.DataSourceProperties $ DataSourceBeanCreationException:无法确定合适的驱动程序类
我确实在类似的问题上研究了不同的stackoverflow问题,但没有任何效果。
这是示例代码和其他工件:
pom.xml:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc8</artifactId>
<version>12.2.0.1</version>
</dependency>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ucp</artifactId>
<version>12.2.0.1</version>
</dependency>
<dependency>
<groupId>com.oracle.jdbc</groupId>
<artifactId>ons</artifactId>
<version>12.2.0.1</version>
</dependency>
application.yml:
spring:
oracle-db:
url: jdbc:oracle:thin:<oracle db details>
username: <user id>
password: <password>
driver-class-name: oracle.jdbc.OracleDriver
在上面我什至尝试使用oracle.jdbc.driver.OracleDriver作为驱动程序类名。我也将driver-class-name更改为driverClassName,但存在相同的错误。
在代码中,我按以下方式创建数据源:
@Bean
@Primary
@ConfigurationProperties("spring.oracle-db")
public DataSourceProperties myDataSourceProperties() {
return new DataSourceProperties();
}
@Bean
@ConfigurationProperties("spring.oracle-db")
public HikariDataSource getMyds() {
return myDataSourceProperties().initializeDataSourceBuilder().type(HikariDataSource.class).build();
}
我是什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您提供的信息,看起来您在尝试为Spring Boot应用配置Oracle数据库数据源时遇到了问题。错误提示表明Spring Boot无法确定合适的JDBC驱动类。尽管您已经尝试了多种方法,这里有几个可能的解决方案和检查点,希望能帮助到您:
确认依赖是否正确加载:
pom.xml
中添加了ojdbc8、ucp和ons的依赖。请确保这些依赖没有被其他配置或profile覆盖或排除。mvn dependency:tree
来查看依赖树,确认Oracle JDBC驱动是否被正确解析并包含在内。Spring Boot版本兼容性:
YAML配置格式:
application.yml
中,确保数据库URL是完整的,并且包含了正确的主机名、端口和SID/服务名。例如:
spring:
oracle-db:
url: jdbc:oracle:thin:@hostname:port/service_name
username: your_username
password: your_password
driver-class-name: oracle.jdbc.OracleDriver
spring.datasource
而非自定义属性前缀(如spring.oracle-db
),则应相应调整配置。移除不需要的依赖:
pom.xml
中移除它,看是否影响数据源的创建。使用自动配置:
DataSourceProperties
和HikariDataSource
,并且指定了所有必要的属性,理论上应该能正常工作。但是,您可以尝试简化配置,仅在application.yml
中提供必要信息,让Spring Boot自动处理数据源的创建。例如:
spring:
datasource:
url: ...
username: ...
password: ...
driver-class-name: oracle.jdbc.OracleDriver
type: com.zaxxer.hikari.HikariDataSource
检查Classpath冲突:
如果以上步骤都不能解决问题,请检查应用程序日志中的其他异常或警告信息,它们可能提供更多线索。此外,考虑到环境因素,确保您的Java环境与Oracle JDBC驱动兼容,以及网络配置允许访问数据库服务器。