codememo

Java와 Oracle XE 간의 데이터 소스 연결을 사용하는 OCI와 SIN 드라이버 연결의 차이점은 무엇입니까?

tipmemo 2023. 6. 7. 22:57
반응형

Java와 Oracle XE 간의 데이터 소스 연결을 사용하는 OCI와 SIN 드라이버 연결의 차이점은 무엇입니까?

3way(OCI, THIN 및 데이터 소스)를 사용하여 Java와 Oracle 10g XE 간의 연결을 위해 아래 코드를 작성하고 있습니다. 코드는 정상적으로 실행되고 있지만 데이터 소스 연결과 함께 THIN과 OCI 간의 차이점을 알 수 없습니다.

1-

public static void main (String args[]) throws SQLException
 {
  OracleDataSource ods = new OracleDataSource();
  ods.setURL("jdbc:oracle:thin:hr/hr@localhost:1521/XE");
  Connection con = ods.getConnection();
  System.out.println("Connected");
  con.close();
 }

2-

public static void main(String args[])
     {
      try
      {
       // load oracle driver
      Class.forName("oracle.jdbc.driver.OracleDriver");
      // connect using Thin driver
      Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr");
      System.out.println("Connected Successfully To Oracle");
      con.close();
      }
      catch(Exception ex)
      {
        ex.printStackTrace();
      }
 }

3-

public static void main(String args[])
     {
      try
      {
       // load oracle driver
      Class.forName("oracle.jdbc.driver.OracleDriver");
      // connect using Native-API (OCI) driver
      Connection con = DriverManager.getConnection("jdbc:oracle:oci:@","hr","hr" );
      System.out.println("Connected Successfully To Oracle using OCI driver");
      con.close();
      }
      catch(Exception ex)
      {
        ex.printStackTrace();
      }
 }

Oracle은 데이터베이스에 대해 네 가지 유형의 드라이버를 제공하지만, 질문하신 두 가지만 열거하겠습니다.

OCI 드라이버는 유형 2 JDBC 드라이버이며 기본 코드를 사용하여 데이터베이스에 연결합니다.따라서 기본 Oracle 드라이버를 사용할 수 있는 플랫폼의 옵션일 뿐 "순수한" Java 구현은 아닙니다.

Oracle의 JDBC Thin 드라이버는 Java 소켓을 사용하여 Oracle에 직접 연결하는 유형 4 JDBC 드라이버입니다.Oracle의 SQL*Net TCP/IP 프로토콜을 직접 구현합니다.100% Java이므로 플랫폼에 독립적이며 애플릿에서도 실행할 수 있습니다.(당신이 그래야 하는 것이 아닙니다)

JDBC 씬 드라이버와 JDBC OCI 드라이버는 모두 동일한 네트워크 프로토콜을 사용합니다.서버의 관점에서 보면 둘 사이에는 차이가 없습니다.JDBC 씬 드라이버는 100% Java이며 단일 독립형 병에 포함됩니다(고급 기능을 사용하려면 몇 가지 추가 병이 필요함).JDBC OCI 드라이버는 OCI 클라이언트 라이브러리에 JNI를 호출하므로 설치할 Oracle 전체 클라이언트에 따라 달라집니다(OCI도 sqlplus에서 사용됨).Oracle은 대부분의 고객이 사용하는 JDBC 씬 드라이버를 사용할 것을 권장합니다.그것은 가장 빠른 운전자이고 가장 강력한 운전자입니다.

언급URL : https://stackoverflow.com/questions/21711085/what-is-the-difference-between-oci-and-thin-driver-connection-with-data-source-c

반응형