Jetty コネクションプールからAccess のデータに連携。

CData JDBC Driver は、コネクションプーリングをサポートします:本記事では、Jetty のWeb アプリからAccess のデータに連携する手順を説明します。

加藤龍彦
デジタルマーケティング

最終更新日:2023-06-18

この記事で実現できるAccess 連携のシナリオ

こんにちは!ウェブ担当の加藤です。マーケ関連のデータ分析や整備もやっています。

CData JDBC Driver for Access は、Java Web アプリケーションに簡単に統合して利用することができます。本記事では、Jetty でドライバーをコネクションプールとして設定することで、効率的にAccess のデータをアプリケーションで連携利用する方法を説明します。Jetty でJNDI resource for Access を設定します。

DBC Driver for Access を JNDI Data Source として設定

次の手順で、Jetty とAccess の接続を確立します。

  1. Jetty ベースでJNDI モジュールを有効化します。JNDI を有効化するコマンドラインは以下の通り:

    java -jar ../start.jar --add-to-startd=jndi
  2. JDBC Driver の.jar ファイルと.lic ファイル(インストールディレクトリのlib フォルダ下)をcontext path のlib フォルダに配置します。
  3. リソースおよびスコープを宣言します。リソース宣言で必要な接続プロパティを入力します。この例では、Access のデータソースをWeb アプリケーションのWEB-INF\jetty-env.xml レベルにdeclare しています。

    <Configure id='accessdemo' class="org.eclipse.jetty.webapp.WebAppContext"> <New id="accessdemo" class="org.eclipse.jetty.plus.jndi.Resource"> <Arg><Ref refid="accessdemo"/></Arg> <Arg>jdbc/accessdb</Arg> <Arg> <New class="cdata.jdbc.access.AccessDriver"> <Set name="url">jdbc:access:</Set> <Set name="DataSource">C:/MyDB.accdb</Set> </New> </Arg> </New> </Configure>

    Access接続の設定方法

    ローカルファイルへの接続設定

    ローカル環境からAccess への接続は非常にシンプルです。ConnectionTypeLocal に設定することで、CRUD 操作(SELECT、INSERT、UPDATE、DELETE)をすべて実行できます。接続にはDataSource プロパティに以下のようなAcces sデータベースファイルのフルパスを指定します。

    C:\Users\Public\Documents\MyDatabase.accdb

    詳細な接続手順については、ヘルプドキュメントの「はじめに」セクションをご参照ください。

    クラウドストレージ上のAccess ファイルへの接続設定

    各種クラウドストレージに保存されているAccess ファイルへのアクセスにも対応しています。ただし、クラウド上のファイルに対するデータ操作は、INSERT、UPDATE、DELETE に制限されますのでご注意ください。

    S3、Google Driver、OneDrive など、各種クラウドストレージ内のAccess ファイルへの接続方法はこちらの記事をご確認ください。

    クラウド上のファイルを更新したい場合は、以下の手順で実施いただけます。

    1. 対応するCData ドライバーを利用し、クラウドサービスからAccess ファイルをダウンロード
    2. Access ドライバーを使用して、ローカル環境でファイルを編集
    3. クラウドサービス用ドライバーのストアドプロシージャを使用して、更新ファイルをアップロード

    具体例として、SharePoint 上のファイルを更新する場合の手順をご紹介します。

    1. CData SharePoint ドライバーのDownloadDocument プロシージャを使用してファイルを取得
    2. CData Access ドライバーでファイルの更新を実施
    3. SharePoint ドライバーのUploadDocument プロシージャで更新内容を反映

    DataSource 接続プロパティの設定について補足いたします。接続先のクラウドストレージを識別するための一意の接頭辞を指定し、続けて目的のファイルパスまたはフォルダパスを記述します。フォルダを指定した場合は1ファイルが1テーブルとして、単一ファイルの場合は単一テーブルとして扱われます。

  4. Web xml でリソースを設定します:

    jdbc/accessdb javax.sql.DataSource Container
  5. これで、java:comp/env/jdbc/accessdb へのルックアップでAccess のデータにアクセスできます: InitialContext ctx = new InitialContext(); DataSource myaccess = (DataSource)ctx.lookup("java:comp/env/jdbc/accessdb");

Jetty にさらに統合

ここでは、シンプルなコネクションプーリングシナリオでのドライバーの接続について説明しました。追加での連携ケースについては、Jetty ドキュメントのWorking with Jetty JNDI  参照してください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。