各製品の資料を入手。
詳細はこちら →JDBI からAccess データ のデータアクセスオブジェクトを作成
JDBI でAccess のデータ 用のSQL オブジェクトAPIを作成する方法を概説します。
最終更新日:2022-05-25
この記事で実現できるAccess 連携のシナリオ
こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。
JDBI は、Fluent スタイルとSQL オブジェクトスタイルという2つの異なるスタイルAPI を公開する、Java 用のSQL コンビニエンスライブラリです。CData JDBC Driver for Access は、Java アプリケーションとリアルタイムAccess のデータ のデータ連携を実現します。これらの技術を組み合わせることによって、Access のデータ へのシンプルなコードアクセスが可能になります。ここでは、基本的なDAO(Data Access Object )とそれに付随するAccess のデータ の読み書きのためのコードの作成について説明します。
Access Orders Entity のDAO を作成
以下のインターフェースは、実装されるSQL ステートメントごとに単一のメソッドを作成するためのSQL オブジェクトの正しい動作を宣言します。
public interface MyOrdersDAO {
//insert new data into Access
@SqlUpdate("INSERT INTO Orders (ShipCity, Freight) values (:shipCity, :freight)")
void insert(@Bind("shipCity") String shipCity, @Bind("freight") String freight);
//request specific data from Access (String type is used for simplicity)
@SqlQuery("SELECT Freight FROM Orders WHERE ShipCity = :shipCity")
String findFreightByShipCity(@Bind("shipCity") String shipCity);
/*
* close with no args is used to close the connection
*/
void close();
}
Access への接続を開く
必要な接続プロパティを収集し、Access に接続するための適切なJDBC URL を作成します。
Access接続の設定方法
ローカルファイルへの接続設定
ローカル環境からAccess への接続は非常にシンプルです。ConnectionType をLocal に設定することで、CRUD 操作(SELECT、INSERT、UPDATE、DELETE)をすべて実行できます。接続にはDataSource プロパティに以下のようなAcces sデータベースファイルのフルパスを指定します。
C:\Users\Public\Documents\MyDatabase.accdb
詳細な接続手順については、ヘルプドキュメントの「はじめに」セクションをご参照ください。
クラウドストレージ上のAccess ファイルへの接続設定
各種クラウドストレージに保存されているAccess ファイルへのアクセスにも対応しています。ただし、クラウド上のファイルに対するデータ操作は、INSERT、UPDATE、DELETE に制限されますのでご注意ください。
S3、Google Driver、OneDrive など、各種クラウドストレージ内のAccess ファイルへの接続方法はこちらの記事をご確認ください。
クラウド上のファイルを更新したい場合は、以下の手順で実施いただけます。
- 対応するCData ドライバーを利用し、クラウドサービスからAccess ファイルをダウンロード
- Access ドライバーを使用して、ローカル環境でファイルを編集
- クラウドサービス用ドライバーのストアドプロシージャを使用して、更新ファイルをアップロード
具体例として、SharePoint 上のファイルを更新する場合の手順をご紹介します。
- CData SharePoint ドライバーのDownloadDocument プロシージャを使用してファイルを取得
- CData Access ドライバーでファイルの更新を実施
- SharePoint ドライバーのUploadDocument プロシージャで更新内容を反映
DataSource 接続プロパティの設定について補足いたします。接続先のクラウドストレージを識別するための一意の接頭辞を指定し、続けて目的のファイルパスまたはフォルダパスを記述します。フォルダを指定した場合は1ファイルが1テーブルとして、単一ファイルの場合は単一テーブルとして扱われます。
ビルトイン接続文字列デザイナー
JDBC URL の構成については、Access JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.access.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。

Access の接続文字列は、通常次のようになります。
jdbc:access:DataSource=C:/MyDB.accdb;
構成済みのJDBC URL を使用して、DAO インターフェースのインスタンスを取得します。以下に示す特定のメソッドはインスタンスにバインドされたハンドルを開くため、ハンドルとバインドされたJDBC 接続を開放するには、インスタンスを明示的に閉じる必要があります。
DBI dbi = new DBI("jdbc:access:DataSource=C:/MyDB.accdb;");
MyOrdersDAO dao = dbi.open(MyOrdersDAO.class);
//do stuff with the DAO
dao.close();
Access データ について
Access への接続を開いた状態で以前定義したメソッドを呼び出すだけで、Access のOrders エンティティからデータを取得できます。
//disply the result of our 'find' method
String freight = dao.findFreightByShipCity("New York");
System.out.println(freight);
Access データ の書き方
以前定義した方法を使用すれば、Access にデータを書き込むことも簡単になります。
//add a new entry to the Orders entity
dao.insert(newShipCity, newFreight);
JDBI ライブラリはJDBC 接続を処理できるため、CData JDBC Driver for Access と統合することで、SQL Object API for Access を簡単に作成できます。今すぐ無料トライアルをダウンロードし、Java アプリケーションでリアルタイムAccess を操作しましょう。