Подтвердить что ты не робот

В чем разница между подключением драйвера OCI и THIN с соединением источника данных между java и oracle XE?

Я пишу приведенные ниже коды для соединения между Java и Oracle 10g XE с использованием 3-х способов (OCI, THIN и источника данных), код работает успешно, но не знает разницы между THIN и OCI с источником данных соединение.

1 -

public static void main (String args[]) throws SQLException
 {
  OracleDataSource ods = new OracleDataSource();
  ods.setURL("jdbc:oracle:thin:hr/[email protected]: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();
      }
 }
4b9b3361

Ответ 1

Oracle предоставляет четыре типа драйверов для своей базы данных, но я только перечислил два вопроса, о которых вы просили.

Драйвер OCI - это тип 2 JDBC и использует собственный код для подключения к базе данных. Таким образом, это только вариант на платформах, в которых есть собственные драйверы Oracle, и это не "чистая" реализация Java.

Oracle JDBC Thin driver - это тип 4 Драйвер JDBC, который использует Java-сокеты для непосредственного подключения к Oracle. Он реализует Oracle SQL * Net TCP/IP протокол напрямую. Поскольку это 100% Java, она независима от платформы и может также запускаться из апплета. (не то, что вам нужно)

Ответ 2

Как тонкий драйвер JDBC, так и драйвер JDBC OCI говорят о том же сетевом протоколе. С точки зрения сервера нет разницы между ними. Тонкий драйвер JDBC - это 100% Java и поставляется в одном автономном банке (для дополнительных функций потребуется несколько дополнительных банок). Драйвер JDBC OCI делает вызовы JNI в клиентской библиотеке OCI C и, следовательно, зависит от установленного полного клиента Oracle (OCI - это также то, что использует sqlplus). Oracle рекомендует использовать тонкий драйвер JDBC, который используется большинством клиентов. Это самый быстрый драйвер и самый надежный.