R2DBC配置Oracle数据库连接URL报错IllegalArgumentException问题问询
问题成因
- 核心原因是Oracle R2DBC连接URL的规则和JDBC、MySQL R2DBC的规则不通用,你直接复用了Oracle JDBC的URL写法,在R2DBC URL中加入了JDBC专属的
thin驱动类型标识,Oracle R2DBC的URL解析器无法识别该字段,直接抛出非法URL异常。 - 次要原因可能是未引入官方Oracle R2DBC驱动依赖,Spring Boot默认没有集成该驱动,无法识别
r2dbc:oracle开头的URL规则。
解决方案
- 修正
application.properties中的连接URL配置,删除多余的thin段,根据你使用的是服务名还是SID选择对应写法:- 使用服务名连接(大部分场景默认orcl为服务名):
spring.r2dbc.url=r2dbc:oracle://localhost:1521/orcl spring.r2dbc.username=account spring.r2dbc.password=account - 使用SID连接:
spring.r2dbc.url=r2dbc:oracle://localhost:1521?SID=orcl spring.r2dbc.username=account spring.r2dbc.password=account
- 使用服务名连接(大部分场景默认orcl为服务名):
- 确认项目已引入Oracle R2DBC官方依赖,以Maven为例:
版本可根据你的Spring Boot版本适配选择。<dependency> <groupId>com.oracle.database.r2dbc</groupId> <artifactId>oracle-r2dbc</artifactId> <version>1.2.0</version> </dependency>
内容的提问来源于stack exchange,提问作者Xuân Dũng Đoàn
相关产品推荐
相关产品推荐

