溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用JDBC怎么對ORACLE進行連接

發(fā)布時間:2021-03-26 15:43:27 來源:億速云 閱讀:141 作者:Leah 欄目:數(shù)據(jù)庫

本篇文章給大家分享的是有關使用JDBC怎么對ORACLE進行連接,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

格式一: 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進行連接,小編相信有部分知識點可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI