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/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は、データベース用に4種類のドライバーを提供していますが、ここでは、あなたが尋ねた2つのみを列挙します。
[〜#〜] oci [〜#〜] ドライバーは type 2 JDBCドライバーであり、ネイティブコードを使用してデータベースに接続します。したがって、ネイティブOracleドライバーが利用可能なプラットフォームでのオプションにすぎず、「純粋な」Java実装ではありません。
OracleのJDBC Thinドライバーは、 type 4 JDBCドライバーで、Javaソケットを使用してOracleに直接接続します。OracleのSQL * Net TCP/IPプロトコルを直接実装します。 100%Javaであり、プラットフォームに依存せず、アプレットからも実行できます(そうすべきではありません)。
JDBC ThinドライバとJDBC OCIドライバの両方が同じネットワークプロトコルを使用します。サーバーの観点からは、2つの間に違いはありません。 JDBCシンドライバーは100%Javaであり、単一のスタンドアロンjarで提供されます(高度な機能にはいくつかの追加のjarが必要です)。JDBCOCIドライバーはOCI CクライアントライブラリへのJNI呼び出しを行い、したがって、インストールするOracleフルクライアントに依存します(OCIもsqlplusが使用するものです)。ほとんどの顧客が使用するJDBCシンドライバーを使用することをお勧めします。