> 数据库 > Oracle >

JDBC连接数据库使用SERVICE NAME、SID以及TNSName不同写法

本周使用jdbc连接客户的oracle时总提示超时。
一直使用SID来连接数据库的。尝试换成Service Name后连接成功。

Java JDBC Thin Driver 连接 Oracle有三种方法。 

格式一: 使用ServiceName方式: 
jdbc:oracle:thin:@//<host>:<port>/<service_name> 
例 jdbc:oracle:thin:@//xxx.xxx.xxx.xxx:1526/CDEV 
@后面有//, 这是与使用SID的主要区别。(11g在@后不加//也OK)
这种格式是Oracle 推荐的格式.
因为对于集群来说,每个节点的SID是不一样的,而SERVICE NAME可以包含所有节点。 

格式二: 使用SID方式: 
jdbc:oracle:thin:@<host>:<port>:<SID> 
例 jdbc:oracle:thin:@xxx.xxx.xxx.xxx:1526:CDEV2

格式三:使用TNSName方式: 
jdbc:oracle:thin:@<TNSName> 
例 jdbc:oracle:thin:@CDEV 
注意,ORACLE从10.2.0.1后支持TNSNames (责任编辑:IT)