jdbc/ojdbc 連結oracle的三種方式(轉)

來源:互聯網
上載者:User

標籤:

文章轉自:http://blog.itpub.net/22664653/viewspace-1383092/

前言
  本文是一篇學習筆記,學習如何通過java jdbc /ojdbc 串連oracle的幾種方式。
一 使用方法
方法一:使用service_name 串連oracle

jdbc:oracle:thin:@//<host>:<port>/<service_name> 
例如: jdbc:oracle:thin:@//10.10.10.1:1521/TDB
注意這裡的格式,@後面有//, 這是與使用SID的主要區別。
對於叢集來說,每個節點的SID 是不一樣的,但是SERVICE_NAME 確可以包含所有節點。
方法二: 使用SID 串連oracle
jdbc:oracle:thin:@<host>:<port>:<SID> 
Example: jdbc:oracle:thin:@10.10.10.1:1521:testdb1 

注意 該方法已經不做推薦,oracle 官方推薦使用service_name
方法三:使用tnsname 串連oracle

jdbc:oracle:thin:@<TNSName> 
Example: jdbc:oracle:thin:@TESTDB

二 原始碼

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class testDB {
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver";
# public static final String DBURL = "jdbc:oracle:thin:@127.0.0.1:1521/testdb1"; //sid 格式 testdb1是sid
# public static final String DBURL = "jdbc:oracle:thin:@//127.0.0.1:1521/TDB";   //servicename TDB是service_name
public static final String DBUSER = "test\";
public static final String DBPASSWORD = \"xxx\";
public static final String DBURL = \"jdbc:oracle:thin:@TESTDB\"; //tnsname 格式
public static void main(String[] args) throws Exception
 {
   Connection con = null;
   PreparedStatement ps = null;
   ResultSet rs = null;
  String strSQL = \"select count(*) from tsa_dim_deal\";
# System.setProperty(\"oracle.net.tns_admin\", \"/home/admin/oracle\");//使用tnsname 方法的時候 需要制定tnsname.ora所在的檔案夾絕對路徑
  Class.forName(DBDRIVER).newInstance();
  con = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD);
  ps = con.prepareStatement(strSQL);
  rs = ps.executeQuery();
while(rs.next())
  {
   System.out.println(\"num:\"+rs.getString(1));
  }
  rs.close();
  ps.close();
  con.close();
 }
}

附錄:

[[email protected] oracle]$ more tnsnames.ora
testdb=
  (DESCRIPTION =
    (FAILOVER = ON)
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.1)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.2)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.3)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.4)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.5)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.10.10.6)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = tdb)
    )
  )

注意 本文裡面 service_name tdb 和tnsname (testdb) 故意設定的不一樣.

三  參考:
http://razorsql.com/docs/help_oracle.html

jdbc/ojdbc 連結oracle的三種方式(轉)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.