JRuby からAccess にデータ連携

リアルタイムAccess に連携するシンプルなJRuby アプリケーションを作成します。

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

最終更新日:2022-10-23

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

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

JRuby はRuby プログラミング言語の高性能で安定した、完全にスレッド化されたJava 実装です。CData JDBC Driver for Access を使用すると、JRuby からリアルタイムAccess へのデータ連携を簡単に実装できます。ここでは、Access に接続し、クエリを実行して結果を表示する簡単なJRuby アプリを作成する方法を説明します。

Access のデータにJDBC で接続

アプリを作成する前に、JDBC Driver のJAR ファイルのインストール場所をメモします。 (通常はC:\Program Files\CDatat\CData JDBC Driver for Access\libにあります。)

JRuby は、JDBC をネイティブにサポートしているため、簡単にAccess に接続してSQL クエリを実行できます。java.sql.DriverManager クラスのgetConnection 関数を使用してJDBC 接続を初期化します。

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テーブルとして、単一ファイルの場合は単一テーブルとして扱われます。

ビルトイン接続文字列デザイナー

JDBC URL の構成については、Access JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。

java -jar cdata.jdbc.access.jar

接続プロパティを入力し、接続文字列をクリップボードにコピーします。

Using the built-in connection string designer to generate a JDBC URL (Salesforce is shown.)

以下はAccess の一般的なJDBC 接続文字列です。

jdbc:access:DataSource=C:/MyDB.accdb;

Access のデータへの接続性を持つJRuby アプリを作成

新しいRuby ファイル(例: AccessSelect.rb) を作成してテキストエディタで開き、次のコードをファイルにコピーします。

require 'java' require 'rubygems' require 'C:/Program Files/CData/CData JDBC Driver for Access 2018/lib/cdata.jdbc.access.jar' url = "jdbc:access:DataSource=C:/MyDB.accdb;" conn = java.sql.DriverManager.getConnection(url) stmt = conn.createStatement rs = stmt.executeQuery("SELECT OrderName, Freight FROM Orders") while (rs.next) do puts rs.getString(1) + ' ' + rs.getString(2) end

ファイルが完成したら、コマンドラインからファイルを実行するだけでJRuby でAccess を表示できるようになります。

jruby -S AccessSelect.rb

SQL-92 クエリをAccess に書き込むと、Access を独自のJRuby アプリケーションに素早く簡単に組み込むことができます。今すぐ無料トライアルをダウンロードしましょう。

関連コンテンツ

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

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