我正在使用以下3种方式(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,所以它是平台无关的,也可以从Applet运行。(不是你应该)