UCanAccessは、ODBC を使用せずに Access データベースから読み書きできるようにする純粋な Java JDBC ドライバーです。これらのタスクを実行するために、 JackcessとHSQLDBという他の 2 つのパッケージを使用します。以下に、セットアップ方法の簡単な概要を示します。
オプション 1: Maven を使用する
プロジェクトがMavenを使用している場合は、次の座標を介して UCanAccess を簡単に含めることができます。
groupId : net.sf.ucanaccess
artifactId: ucanaccess
以下は からの抜粋です。最新のリリースを取得するにはpom.xml
、 を更新する必要がある場合があります。<version>
<dependencies>
<dependency>
<groupId>net.sf.ucanaccess</groupId>
<artifactId>ucanaccess</artifactId>
<version>4.0.4</version>
</dependency>
</dependencies>
オプション 2: JAR をプロジェクトに手動で追加する
前述のように、UCanAccess には Jackcess と HSQLDB が必要です。Jackcess には独自の依存関係があります。したがって、UCanAccess を使用するには、次のコンポーネントを含める必要があります。
UCanAccess (ucanaccess-xxxjar)
HSQLDB (hsqldb.jar、バージョン 2.2.5 以降)
Jackcess (jackcess-2.xxjar)
commons-lang (commons-lang-2.6.jar、または新しい2.x バージョン)
commons-logging ( commons-logging-1.1.1.jar、または新しい1.x バージョン)
幸いなことに、UCanAccess の配布ファイルには、必要なすべての JAR ファイルが含まれています。解凍すると、次のようなものが表示されます
ucanaccess-4.0.1.jar
/lib/
commons-lang-2.6.jar
commons-logging-1.1.1.jar
hsqldb.jar
jackcess-2.1.6.jar
必要なことは、プロジェクトに5 つの JAR をすべて追加することだけです。
注:他の 5 つの JAR ファイルを追加する場合は、ビルド パスに追加しないでください。loader/ucanload.jar
このUcanloadDriver
クラスは特別な状況でのみ使用され、別の設定が必要です。詳細については、関連する回答を参照してください。
Eclipse:パッケージ エクスプローラーでプロジェクトを右クリックし、 を選択しますBuild Path > Configure Build Path...
。[外部 JAR を追加...] ボタンをクリックして、5 つの JAR をそれぞれ追加します。完了すると、Java ビルド パスは次のようになります。
NetBeans:プロジェクトのツリー ビューを展開し、[ライブラリ] フォルダを右クリックして [JAR/フォルダを追加...] を選択し、JAR ファイルを参照します。
5 つの JAR ファイルをすべて追加すると、"Libraries" フォルダは次のようになります。
IntelliJ IDEA:File > Project Structure...
メイン メニューから選択します。[ライブラリ] ペインで [追加] ( +
) ボタンをクリックし、5 つの JAR ファイルを追加します。それが完了すると、プロジェクトは次のようになります。
それでおしまい!
次のようなコードを使用して、.accdb ファイルと .mdb ファイルの "U Can Access" データにアクセスできるようになりました
// assumes...
// import java.sql.*;
Connection conn=DriverManager.getConnection(
"jdbc:ucanaccess://C:/__tmp/test/zzz.accdb");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT [LastName] FROM [Clients]");
while (rs.next()) {
System.out.println(rs.getString(1));
}
開示
この Q&A を書いている時点では、私は UCanAccess プロジェクトに関与も提携もしていません。私はちょうどそれを使用しました。それ以来、私はプロジェクトの貢献者になりました。