1. 程式人生 > >解決JAVA通過JDBC連線Oracle資料庫出現的問題

解決JAVA通過JDBC連線Oracle資料庫出現的問題

Java連線Oracle步驟:

1.註冊載入驅動

驅動名:DRIVER="oracle.jdbc.driver.OracleDriver";
Class.forName("驅動類名");

2.獲得連線

資料庫地址: URL="jdbc:oracle:thin:@127.0.0.1:1521:ORCL";
Connection conn = DriverManager.getConnection(資料庫地址,使用者名稱,密碼);
System.out.println("連線成功");

3.進行對資料庫的操作

4.依次關閉連線
conn.close();

值得注意的是:

1.在此過程中需要載入連線Oracle的驅動class12.jar
2、將此jar包複製到java專案中,並且新增到“構建路徑”。
3、展開jar包,找到驅動類的名稱,並複製:oracle.jdbc.driver.OracleDriver
4、資料庫根據固定格式寫:jdbc:oracle:thin:@資料庫IP地址:1521:全域性資料庫名
說明:
jdbc:oracle:thin:表示協議,相當於上網用的“http:”。
資料庫IP地址:用ipconfig可以查到。目前教師機查到的是:192.168.1.199。
1521:Oracle資料庫的埠,通常不用修改。
全域性資料庫名:通常在安裝時指定,預設為:orcl。
即在程式中書寫的地址為:jdbc:oracle:thin:@192.168.1.199:1521:orcl
6、啟動時報錯:Io 異常: The Network Adapter could not establish the connection
分析一:
·要連線到資料庫,首先要保證Oracle服務要啟動。所以先啟動:OracleServiceORCL。
·注意,客戶端編寫java的電腦,不需要啟動本機的任何Oracle服務。
執行,相同的錯誤仍然存在。
分析二:
·要訪問所有的網路程式,網路程式都必須執行一個在某個埠監聽的程式。java程式要連線到Oracle,必須先連線到監聽器。對Oracle來講,這就是監聽服務:OracleoracleTNSListener。Oracle10G的監聽服務名稱不同,但仍然是以“TNSListener”結尾的名稱。
7、如果監聽服務能夠正常啟動,則java程式也可以連線到Oracle資料庫了。

常見問題:啟動監聽服務報錯,或者啟動以後沒有報錯,但是單擊“重新整理”發現實際上並沒有啟動。如何解決?
分析:
Oracle的監聽器的資訊對應的IP地址不正確,必須將這個IP地址改為本機的IP地址。
步驟:
·找到Oracle的選單,再找到“net manager”程式→Oracle NET配置→本地→監聽程式→將“主機”右邊的文字框修改為本機的IP地址
·最後一定要儲存修改,步驟:單擊選單“檔案”→“儲存”網路配置。
·再次啟動Oracle監聽服務,並重新整理,看是否啟動成功。
·如果監聽服務啟動成功,則jdbc在正常情況下也能夠連線到Oracle了。

·作為經驗,如果出現了“ TNS:listener does not currently know of SID given in connect descriptor”。則只需要再將OracleServiceORCL服務重新啟動一下。
·作為經驗,如果使用“localhost”連線不上,則使用本機實際的IP地址,通過ipconfig得到。
最後,應該先啟動Oracle監聽器,再啟動Oracle服務。

 

附:埠的理解及常用埠號

埠號:我。同理,為了區別伺服器上每個網路監聽程式,每個監聽器都要分配一個唯一的埠號。埠號,相當於就是“網路程式的身份ID”。

常用埠號:SQLServer:1433;Oracle:1521,Web伺服器:80( http://g.cn,其實是http://g.cn:80/),Tomcat:8080