我有一个使用JDBC(通过JPA)的Java应用程序,它使用主机名、端口和Oracle SID连接到开发数据库,如下所示:

jdbc:oracle:thin:@oracle.hostserver1.mydomain.ca:1521:XYZ

XYZ是先知席德.现在,我需要连接到另一个Oracle数据库,该数据库不使用SID,而是使用Oracle"服务名称".

我试过了,但没用:

jdbc:oracle:thin:@oracle.hostserver2.mydomain.ca:1522:ABCD

ABCD是另一个数据库的服务名称.

我做错了什么?

推荐答案

http://download.oracle.com/docs/cd/B28359_01/java.111/b31224/urls.htm#BEIDHCBA

100

精简样式的服务名称仅受JDBC瘦驱动程序支持.语法为:

@//主机名:端口号/服务名

例如:

jdbc:oracle:thin:scott/[email protected]//myhost:1521/myservicename

所以我会try :

100

此外,根据Robert GreaTower的回答,您还可以在JDBC URL中指定TNS名称,如下所示:

jdbc:oracle:thin:@(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL=TCP)(HOST=blah.example.com)(PORT=1521)))(CONNECT_DATA=(SID=BLAHSID)(GLOBAL_NAME=BLAHSID.WORLD)(SERVER=DEDICATED)))

Java相关问答推荐

如何使用反射在Java中获取注释的属性?

如何在使用 Stream 的同时将 Long 转换为 BigDecimal

使用 UNICODE_CHARACTER_CLASS 标志时的不同 Java 正则表达式匹配行为

HandlerInterceptor 有一个 Object 处理参数,什么类型会被传入拦截器?

Springboot的@Controller和@RestController注解什么时候使用,底层概念是什么?

Java 流不打印出预期值

JVM字节码中的“dup2_x2”指令有什么用?

如何使用固定参数和可变参数制作流?

是否可以将字符串“1L”转换为相应的 Long 值?

使用 Selenium Java 根据 HTML 单元格内容选择元素

设计查询 - 使用 Java 泛型进行代码复制

android studio 上的 Firestore 查询未按预期工作

EntityManager.remove 和 EntityManager.persist 上的 JPA 重复条目错误

将每个语句放在 Eclipse 中新行的 if 子句中

如何将react 式 Java StepVerifier 应用于 Pojo

带有可变参数的消费者

FileInputStream 真的没有缓冲吗?

打印所有可以使用 `+` 或 `-` 运算符给出给定数字的组合

CORS 错误:Spring Boot 多个 WebSecurityConfigurerAdapter

如何用填充零计算整数