私のJavaプロジェクトからMicrosoft Accessデータベース(.accdbまたは.mdbファイル)を操作したいのですが。 JDBC-ODBCブリッジとMicrosoftのAccess ODBCドライバは使いたくありません。
私は CanAccess という名前のAccessデータベース用のJDBCドライバーについて言及している他の答えを見ました。この方法を使用するようにJavaプロジェクトを設定する方法を教えてください。
(JavaからAccessデータベースを操作するためのより良い方法を提案する回答もまた大歓迎です。)
CanAccess は、ODBCを使用せずにAccessデータベースの読み書きを可能にする純粋なJava JDBCドライバです。これらのタスクを実行するために、 Jackcess と HSQLDB の2つのパッケージが使用されます。以下は設定方法の概要です。
あなたのプロジェクトが Maven を使っている場合は、次の座標でUCanAccessを含めることができます。
groupId:net.sf.ucanaccess
artifactId:ucanaccess
上記のように、UCanAccessにはJackcessとHSQLDBが必要です。同様にJackcessには独自の 依存関係 があります。そのため、UCanAccessを使用するには、以下のコンポーネントを含める必要があります。
CanAccess (ucanaccess-x.x.x.jar)
HSQLDB (hsqldb.jar、バージョン2.2.5以降)
Jackcess (jackcess-2.x.x.jar)
commons-lang (commons-lang-2.6.jar、またはそれ以降2.xバージョン)
commons-logging (commons-logging-1.1.1.jar、またはそれ以降1.x version )
幸いなことに、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(5)JARをプロジェクトに追加することだけです。
注:他の5つのJARファイルを追加する場合は、ビルドパスに
loader/ucanload.jar
を追加しないでください。UcanloadDriver
クラスは特殊な状況でのみ使用され、異なる設定が必要です。詳しくは、関連する回答 こちら を参照してください。
Eclipse:パッケージ・エクスプローラーでプロジェクトを右クリックしてBuild Path > Configure Build Path...
を選択してください。 「外部JARを追加...」ボタンをクリックして、5つのJARをそれぞれ追加します。終了すると、Javaビルドパスは次のようになります。
NetBeans:プロジェクトのツリービューを展開し、「Libraries」フォルダを右クリックして「Add JAR/Folder ...」を選択し、次に参照します。 JARファイルに追加します。
5つすべてのJARファイルを追加すると、「ライブラリ」フォルダは次のようになります。
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プロジェクトに関与も提携もしていませんでした。私はそれを使いました。私はそれ以来、プロジェクトへの貢献者になりました。