我有一些应用程序通过 SpringJDBC 以及普通 JDBC 连接到 Oracle 数据库。
JDBC URL 模式是 -
jdbc:oracle:thin:@hostname:portNumber/schemaName
我们正在尝试创建一个可以与应用程序相关的 TNS 条目。例如,如果有一个应用程序 StockTrade,那么架构名称将为 DBStockTrade。
但是,开发人员仍然需要知道构建 JDBC URL 的主机名和端口号,并且每当架构名称更改时都需要进行二进制更改。
有没有办法避免使用主机名和端口号,而只使用架构名称来连接数据库?这个想法是使用某种仅包含架构名称的属性文件并删除其他详细信息。
最佳答案
对于这个问题:
need to make binary change whenever the schema name is changed
我们可以简单地将 JDBC URL 放入配置文件
那么每当架构名称发生变化时,我们只需要编辑配置文件,不需要进行二进制更改。
例如,将 JDBC URL 保存到 .properties 文件
# config.properties
jdbc_url=jdbc:oracle:thin:@hostname:portNumber/schemaName
在Java代码中:
String currentPath = this.getClass().getProtectionDomain().getCodeSource()
.getLocation().toURI().getPath();
String configFile = currentPath + File.separator + "config.properties";
Properties prop = new Properties();
prop.load(new FileInputStream(configFile));
String jdbcUrl = prop.getProperty("jdbc_url")
因此,使用jdbcUrl
我们可以连接到数据库
关于java - 不使用 jdbc url 中的主机名和端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30630374/