昨天,領導安排去新服務器上部署項目,給了我數據庫地址,服務名稱,端口,用戶名和密碼。結果數據庫一直連接不上,日志中的錯誤提示是監聽未找到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 ,端口號后直接用了冒號。