OracleJDBC连接服务名、SID和a配置的多种⽅
式
Java JDBC Thin Driver 连接 Oracle有三种⽅法
格式⼀: 使⽤ServiceName⽅式:
jdbc:oracle:thin:@//<host>:<port>/<service_name>
例 jdbc:oracle:thin:@//x:1526/CDEV
@后⾯有//, 这是与使⽤SID的主要区别。(11g在@后不加//也OK)
这种格式是Oracle 推荐的格式.
因为对于集来说,每个节点的SID是不⼀样的,⽽SERVICE NAME可以包含所有节点。
格式⼆: 使⽤SID⽅式:
jdbc:oracle:thin:@<host>:<port>:<SID>
例 jdbc:oracle:thin:@x:1526:CDEV2
格式三:使⽤TNSName⽅式:
plsql12配置数据库连接jdbc:oracle:thin:@<TNSName>
例 jdbc:oracle:thin:@CDEV
注意,ORACLE从10.2.0.1后⽀持TNSNames
参考实例:
在新服务器上部署项⽬,提供了数据库地址,服务名称,端⼝,⽤户名和密码,结果数据库⼀直连接不上,⽇志中的错误提⽰是监听未到SID,我才明⽩原来我jdbc.properties中需要的是SID,但我把服务名当作SID给配进去了,但是数据库管理员只给我了服务名,但没给我SID,当时搜了各种解决⽅案,⽹上说Oracle JDBC连接⼀共有三种⽅式,分别是:服务名、SID、TNSName的⽅式,但试过当时都没连上(后来发现是我写得格式不正确),最终只好联系数据库管理员要SID,才把项⽬部署完。
今天回到公司,就像继续验证⼀下这些配置⽅式,结果发现都成功了,在此分享⼀下我的配置过程,例如数据库服务名net_grid,SID是netgrid
⼀、通过plsql链接数据库,配置的时候分别使⽤SERVICE_NAME和SID,都可以链接成功
⼆、jdbc配置,以下三中⽅式都可以成功连接数据库
1.使⽤service_name,配置⽅式:jdbc:oracle:thin:@//<host>:1521/net_grid
2.使⽤SID,配置⽅式:jdbc:oracle:thin:@//<host>:1521/netgrid
3.使⽤SID,配置⽅式:jdbc:oracle:thin:@<host>:1521:netgrid
⽐较:1和2中当@后边有双斜杠,端⼝号后边有单斜杠时,⽤服务名和实例名都可以链接成功,3中@后边没有双斜杠,端⼝号后边是冒号⽽不是斜杠的时候只能⽤实例名,当时笔者配置错误的时候是 jdbc:oracle:thin:@//<host>:1521:netgrid ,端⼝号后直接⽤了冒号。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论