使用jdbc連接oracle時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 推薦的格式,因為對于集群來說,每個節(jié)點的SID 是不一樣的,但是SERVICE_NAME 確可以包含所有節(jié)點。
你的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
我在谷歌上找了一些資源,要實現(xiàn)這種連接方式首先要建立tnsnames.ora文件,然后通過System.setProperty指明這個文件路徑。再通過上面URL中的@符號指定文件中的要使用到的資源。
這種格式我現(xiàn)在水平幾乎沒見過,對于我來說用得到這種的情況并不多吧。當然既然是通過配置文件來讀取指定資源肯定也可以直接將資源拿出來放在URL中,直接放在URL中的URL模版是下面這樣的(tnsnames.ora這個文件中放的就是@符號后面的那一段代碼,當然用文件的好處就是可以配置多個,便于管理):
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();
}
}
}
}
總結
以上所述是小編給大家介紹的使用JDBC連接ORACLE的三種URL格式,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
您可能感興趣的文章:- Java如果通過jdbc操作連接oracle數(shù)據(jù)庫
- Java使用Jdbc連接Oracle執(zhí)行簡單查詢操作示例
- jdbc連接oracle數(shù)據(jù)庫功能示例
- Java開發(fā)Oracle數(shù)據(jù)庫連接JDBC Thin Driver 的三種方法
- java基于JDBC連接Oracle 11g Release2實例分析
- 通過JDBC連接oracle數(shù)據(jù)庫的十大技巧
- JDBC連接Oracle數(shù)據(jù)庫常見問題及解決方法
- Oracle JDBC連接BUG解決方案