para ojdbc6 ojdbc16 conexion java oracle database-connection

ojdbc6 - ¿Cuál es la diferencia entre la conexión del controlador OCI y THIN con la conexión de origen de datos entre Java y Oracle XE?



jdbc:oracle:thin:@localhost:1521:xe (2)

Estoy escribiendo los siguientes códigos para la conexión entre java y Oracle 10g XE usando 3 vías (OCI, THIN y fuente de datos), el código se está ejecutando con éxito pero no se sabe la diferencia entre THIN y OCI con la conexión de fuente de datos.

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 proporciona cuatro tipos de controladores para su base de datos, pero solo voy a enumerar los dos que usted preguntó.

El controlador OCI es un controlador JDBC de tipo 2 y utiliza código nativo para conectarse a la base de datos. Por lo tanto, es solo una opción en plataformas que tienen controladores de Oracle nativos disponibles y no es una implementación Java "pura".

El controlador JDBC Thin de Oracle es un controlador JDBC de tipo 4 que utiliza sockets de Java para conectarse directamente a Oracle. Implementa el protocolo SQL * Net TCP / IP de Oracle directamente. Debido a que es 100% Java, es independiente de la plataforma y también puede ejecutarse desde un Applet. (No es que debas)


Tanto el controlador delgado JDBC como el controlador OCI JDBC hablan el mismo protocolo de red. Desde el punto de vista del servidor no hay diferencia entre los dos. El controlador delgado JDBC es 100% Java y viene en un solo frasco independiente (se necesitarán algunos frascos adicionales para funciones avanzadas). El controlador OCI JDBC realiza llamadas JNI a la biblioteca del cliente OCI C y, por lo tanto, depende del cliente completo de Oracle que se va a instalar (OCI también es lo que utiliza sqlplus). Oracle recomienda usar el controlador delgado JDBC, que es el que utilizan la mayoría de los clientes. Es el driver más rápido y el más robusto.