oracle - spring boot + oracle 驱动 + 没有合适的驱动
问题描述
我的应用程序使用许多数据源(postgreSQL、Sybase) 我尝试添加一个 Oracle 数据源
应用程序属性
rocbis.datasource.prd.driver.class-name=oracle.jdbc.driver.OracleDriver
rocbis.datasource.prd.jdbc-url=jdbc:oracle:thin:@<host>:1521:<dbname>
rocbis.datasource.prd.username=<username>
rocbis.datasource.prd.password=<password>
主机、数据库名称、用户名和密码已被混淆...
配置类
@Bean(name = "rocbisDatasourcePRD")
@ConfigurationProperties(prefix = "rocbis.datasource.prd")
public DataSource rocbisDataSourcePRD() {
return DataSourceBuilder.create().build();
}
@Bean(name = "rocbisJDBCTemplatePRD")
public JdbcTemplate rocbisJdbcTemplatePRD(@Qualifier("rocbisDatasourcePRD") DataSource ds) {
return new JdbcTemplate(ds);
}
和 POM.xml
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.6.0.0</version>
</dependency>
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ucp</artifactId>
<version>19.6.0.0</version>
</dependency>
当 Springboot 启动时,出现以下错误:
Caused by: java.lang.RuntimeException: Failed to get driver instance
for jdbcUrl=jdbc:oracle:thin:@<host>:1521:<dbname> at com.zaxxer.hikari.util.DriverDataSource.<init>DriverDataSource.java:112)
at com.zaxxer.hikari.pool.PoolBase.initializeDataSource(PoolBase.java:336)
at com.zaxxer.hikari.pool.PoolBase.<init>(PoolBase.java:109)
at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:108)
at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
at config.DatasourceConfiguration.rocbisJdbcTemplatePRD(DatasourceConfiguration.java:446)
at config.DatasourceConfiguration$$EnhancerBySpringCGLIB$$1cdc8e91.CGLIB$rocbisJdbcTemplatePRD$59(<generated>)
at config.DatasourceConfiguration$$EnhancerBySpringCGLIB$$1cdc8e91$$FastClassBySpringCGLIB$$9002c681.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
at config.DatasourceConfiguration$$EnhancerBySpringCGLIB$$1cdc8e91.rocbisJdbcTemplatePRD(<generated>)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
... 64 common frames omitted
Caused by: java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(Unknown Source)
at com.zaxxer.hikari.util.DriverDataSource.<init>(DriverDataSource.java:104)
... 79 common frames omitted
- org.springframework.boot.SpringApplication
我试过了 :
驱动程序类名而不是驱动程序类名
oracle.jdbc.driver.OracleDriver 而不是 oracle.jdbc.OracleDriver
任何想法 ?谢谢
解决方案
使用oracle.jdbc.OracleDriver
代替oracle.jdbc.driver.OracleDriver
以下配置适用于 Oracle
pom.xml
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
引导程序属性
spring.datasource.url=jdbc:oracle:thin:@<host>:<port>:<service>
spring.datasource.username=<username>
spring.datasource.password=<password>
spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
推荐阅读
- amazon-dynamodb - DynamoDB 中因有条件放置而导致的性能损失
- python - 当我尝试使用“for”循环更改列表的值时,为什么代码不起作用(此处)?
- javascript - 即使条件不成立,map 函数也会返回项目
- c++ - 为 STL 随机数生成器编写工厂方法
- javascript - 是否有一个现代社区可以分享使用 SuiteScript 2.0 的人员的知识和最佳实践?
- c - OpenMP 中的归约操作如何在幕后工作?
- json - 从 JSON 数据解码/编码混合对象数组
- odoo - Odoo v12 中的销售点按钮 - 功能
- spring-boot - 如何使用 Cloud Foundry 为带有 Vue 前端和 H2 数据库的 Spring Boot Web 应用程序提供服务?
- drupal - 获取不可翻译 list_string 字段的已翻译 allowed_values