如何使用 HikariCP 从 oracle 数据库中获取 alias.table

How to get alias.table from oracle database using HikariCP

我最近遇到了这个问题。我不确定它是来自 HikariCP 还是 Oracle 或 Spring Boot。当我尝试使用来自 datasource.schema(application.yml/application.properties) 的模式时,出现错误。 HikariCP 启动但立即失败,说 属性 模式不存在。现在我们应该如何在 oracle 数据库中使用模式?

驱动程序 class 名称:oracle.jdbc.pool.OracleDataSource - ojdbc-7

main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Started.

main] com.zaxxer.hikari.util.PropertyElf : Property schema does not exist on target class oracle.jdbc.pool.OracleDataSource

(我知道我不能为 HikariCP 设置模式!但现在怎么办?)

是否可以使用 HikariCP 使用模式(别名)连接到 oracle 数据库?

对于那些想知道 HikariCP 的人: https://github.com/brettwooldridge/HikariCP学习的好地方。

解决方案!

HikariCP 采用 ConnectionInitSql 属性 我们可以将其设置为:

ConnectionInitSql =改变会话集current_schema=xyz(你的架构名称)

Solution Page

public DataSource datasource(DataSourceProperties dataSourceProperties){
    HikariDataSource ds = new HikariDataSource();
    ds.setJdbcUrl(dataSourceProperties.getUrl());
    ds.setUsername(dataSourceProperties.getUsername());
    ds.setPassword(dataSourceProperties.getPassword());
    ds.setConnectionInitSql("alter session set current_schema=My_Schema");
    return new HikariDataSource(ds);
}