java - 不使用 jdbc url 中的主机名和端口

标签 java oracle jdbc

我有一些应用程序通过 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/

相关文章:

java - 如何从我的Android手机麦克风捕获音频

java - 在某些设备上不会调用 Camera onPreviewFrame()(不存在预览显示)

postgresql - 臭名昭著的 java.sql.SQLException : No suitable driver found

jdbc - 将 JDBC 驱动程序添加到 EMR 上的 Spark

database - DB2 库的 Glassfish v3 问题

java - 如何在调用另一个方法时使用lambda表达式将方法作为参数传递?

java - 如何停止我的服务?

java - 与实体变量名称相关的 JPA/Hibernate 查询失败

SELECT 排名中的 SQL UPDATE 分区语句

sql - 如何用一条SELECT语句从两台服务器的两个数据库中获取数据?