使用JDBC連接ORACLE的三種URL格式
使用jdbc連接oracle時(shí)url有三種格式
格式一: Oracle JDBC Thin using an SID:
jdbc:oracle:thin:@host:port:SID Example: jdbc:oracle:thin:@localhost:1521:orcl
這種格式是最簡單也是用得最多的
你的oracle的sid可以通過一下指令獲得:
sqlplus / as sysdba select value from v$parameter where name='instance_name';
import java.sql.*; public class TestOrclConnect { public static void main(String[] args) { ResultSet rs = null; Statement stmt = null; Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); String dbURL = "jdbc:oracle:thin:@localhost:1521:orcl"; conn = DriverManager.getConnection(dbURL, "admin2", "123"); System.out.println("連接成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); rs = null; } if (stmt != null) { stmt.close(); stmt = null; } if (conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } } }
格式二: Oracle JDBC Thin using a ServiceName:
jdbc:oracle:thin:@//host:port/service_name Example:jdbc:oracle:thin:@//localhost:1521/orcl.city.com
注意這里的格式,@后面有//, port后面:換成了/,這種格式是Oracle 推薦的格式,因?yàn)閷τ诩簛碚f,每個(gè)節(jié)點(diǎn)的SID 是不一樣的,但是SERVICE_NAME 確可以包含所有節(jié)點(diǎn)。
你的oracle的service_name可以通過以下方式獲得:
sqlplus / as sysdba select value from v$parameter where name='service_names'; import java.sql.*; public class TestOrclConnect { public static void main(String[] args) { ResultSet rs = null; Statement stmt = null; Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); String dbURL = "jdbc:oracle:thin:@//localhost:1521/orcl.city.com"; conn = DriverManager.getConnection(dbURL, "admin2", "123"); System.out.println("連接成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); rs = null; } if (stmt != null) { stmt.close(); stmt = null; } if (conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } } }
格式三:Oracle JDBC Thin using a TNSName:
jdbc:oracle:thin:@TNSName Example: jdbc:oracle:thin:@TNS_ALIAS_NAME
我在谷歌上找了一些資源,要實(shí)現(xiàn)這種連接方式首先要建立tnsnames.ora文件,然后通過System.setProperty指明這個(gè)文件路徑。再通過上面URL中的@符號指定文件中的要使用到的資源。
這種格式我現(xiàn)在水平幾乎沒見過,對于我來說用得到這種的情況并不多吧。當(dāng)然既然是通過配置文件來讀取指定資源肯定也可以直接將資源拿出來放在URL中,直接放在URL中的URL模版是下面這樣的(tnsnames.ora這個(gè)文件中放的就是@符號后面的那一段代碼,當(dāng)然用文件的好處就是可以配置多個(gè),便于管理):
jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL= TCP)(HOST=hostA)(PORT= 1522))(ADDRESS=(PROTOCOL=TCP)(HOST=your host)(PORT=1521)))(SOURCE_ROUTE=yes)(CONNECT_DATA=(SERVICE_NAME=your service_name)))
jdbc連接代碼如下:
“` import java.sql.*; public class TestOrclConnect { public static void main(String[] args) { ResultSet rs = null; Statement stmt = null; Connection conn = null; try { Class.forName("oracle.jdbc.driver.OracleDriver"); String dbURL = "jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))" + "(CONNECT_DATA=(SERVICE_NAME=orcl.city.com)))"; conn = DriverManager.getConnection(dbURL, "admin2", "123"); System.out.println("連接成功"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); rs = null; } if (stmt != null) { stmt.close(); stmt = null; } if (conn != null) { conn.close(); conn = null; } } catch (SQLException e) { e.printStackTrace(); } } } }
總結(jié)
以上所述是小編給大家介紹的使用JDBC連接ORACLE的三種URL格式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
Oracle實(shí)現(xiàn)細(xì)粒度訪問控制的步驟
細(xì)粒度訪問控制是Oracle數(shù)據(jù)庫中用于提供行級和列級安全控制的強(qiáng)大功能,本文主要給大家介紹了Oracle實(shí)現(xiàn)細(xì)粒度訪問控制的步驟,并通過代碼示例講解的非常詳細(xì),需要的朋友可以參考下2024-09-09Oracle中查詢重復(fù)記錄的幾種方法實(shí)現(xiàn)
這篇文章主要介紹了Oracle中查詢重復(fù)記錄的方法實(shí)現(xiàn),包含使用GROUP BY和HAVING語句,使用窗口函數(shù)ROW_NUMBER()和使用自連接查詢這三種方式,具有一定的參考價(jià)值,感興趣的可以了解一下2024-06-06Oracle Max函數(shù)使用中出現(xiàn)的問題
在Oracle Max函數(shù)使用中,會出現(xiàn)一些問題,本文將介紹解決方法,需要的朋友可以了解下2012-11-11查詢Oracle中正在執(zhí)行和執(zhí)行過的SQL語句
這篇文章主要介紹了查詢Oracle中正在執(zhí)行和執(zhí)行過的SQL語句,需要的朋友可以參考下2016-10-10Oracle如何更改表空間的數(shù)據(jù)文件位置詳解
這篇文章主要給大家介紹了關(guān)于Oracle如何更改表空間的數(shù)據(jù)文件位置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11oracle數(shù)據(jù)庫導(dǎo)入導(dǎo)出命令使用方法
這篇文章主要介紹了oracle數(shù)據(jù)庫導(dǎo)入導(dǎo)出命令格式,對單表導(dǎo)出、多張表導(dǎo)出的方法2013-11-11Oracle 閃回技術(shù)詳細(xì)介紹及總結(jié)
這篇文章主要介紹了Oracle 閃回技術(shù)詳細(xì)介紹的相關(guān)資料,這里提供了4種閃回技術(shù),需要的朋友可以參考下2016-11-11Oracle?SQL報(bào)錯(cuò):ORA-06550解決辦法
這篇文章主要給大家介紹了關(guān)于Oracle?SQL報(bào)錯(cuò):ORA-06550的解決辦法,Oracle的ORA-06550錯(cuò)誤是一個(gè)常見的Oracle數(shù)據(jù)庫錯(cuò)誤代碼,文中通過代碼及圖文介紹的非常詳細(xì),需要的朋友可以參考下2024-04-04