JDBI からSharePoint Excel Services データのデータアクセスオブジェクトを作成
JDBI は、Fluent スタイルとSQL オブジェクトスタイルという2つの異なるスタイルAPI を公開する、Java 用のSQL コンビニエンスライブラリです。CData JDBC Driver for ExcelServices は、Java アプリケーションとリアルタイムSharePoint Excel Services のデータ のデータ連携を実現します。これらの技術を組み合わせることによって、SharePoint Excel Services のデータ へのシンプルなコードアクセスが可能になります。ここでは、基本的なDAO(Data Access Object )とそれに付随するSharePoint Excel Services のデータ の読み書きのためのコードの作成について説明します。
SharePoint Excel Services Account Entity のDAO を作成
以下のインターフェースは、実装されるSQL ステートメントごとに単一のメソッドを作成するためのSQL オブジェクトの正しい動作を宣言します。
public interface MyAccountDAO {
//request specific data from SharePoint Excel Services (String type is used for simplicity)
@SqlQuery("SELECT AnnualRevenue FROM Account WHERE Industry = :industry")
String findAnnualRevenueByIndustry(@Bind("industry") String industry);
/*
* close with no args is used to close the connection
*/
void close();
}
SharePoint Excel Services への接続を開く
必要な接続プロパティを収集し、SharePoint Excel Services に接続するための適切なJDBC URL を作成します。
ワークブックへの接続
どちらのSharePoint エディションをお使いでも、File を Excel ワークブックに設定してください。このパスは以下のプロパティからの相対パスになります。
- Library:デフォルトではShared Documents ライブラリが使用されます。このプロパティを使って、組織内の別のドキュメントライブラリを指定してみてください。例えば、OneDrive for Business に接続する場合は、このプロパティを"Documents" に設定します。
- Folder:このプロパティを使って、ライブラリ内のサブフォルダへのパスを指定できます。パスはLibrary で指定されたライブラリ名に関連します。
テーブルとしてのスプレッドシートデータへの接続
CData 製品では、基底API で利用可能なオブジェクトに基づいて、使用可能なテーブルを検出していきます。
API では異なるAPI オブジェクトを表示します。スプレッドシートの構成とSharePoint のバージョンに基づいてAPI を選択しましょう。
- OData: OData API を使用すると、Excel で[挿入]->[テーブル]をクリックして作成されたExcel テーブルオブジェクト(範囲やスプレッドシートではありません)から定義されたテーブルにアクセスできます。OData API に接続する際、ワークブックにテーブルオブジェクトが定義されていない場合は、CData 製品がテーブルを返さないことがあります。テーブルとしてスプレッドシートまたは範囲に接続するには、UseRESTAPI をtrue に設定してください。
- REST: REST API を使用すると、Excel テーブルオブジェクト、範囲、およびスプレッドシートから定義されたテーブルへアクセスできます。これがデフォルトの API です。範囲およびスプレッドシートから多数の行をリクエストすることは REST API によって制限されており、CData 製品では返される行数をデフォルトで 100 に制限しています。また CData 製品では、デフォルトで1行目からカラム名を検出します。これを無効にするには、Header を設定してください。
DefineTables を追加設定すると、Excel の範囲の構文を使用して、範囲に基づいてテーブルを定義できます。大きすぎる範囲は、API によって制限されます。
SharePoint オンプレミスへの接続
URL をサーバー名もしくはIP アドレスに設定しましょう。さらに、SharePointVersion と認証値を設定します。
SharePoint OnPremises を認証するには、AuthScheme を認証タイプに設定し、必要に応じてUser と Password を設定してください。
Note:SharePoint On-Premises 2010 に接続する場合は、 UseRESTAPI をtrue に設定する必要があります。
Windows(NTLM)
最も一般的な認証タイプです。CData 製品では NTLM をデフォルトとして使用するよう事前設定されています。Windows のUser と Password を設定して接続してください。
その他の認証方法については、ヘルプドキュメントの「はじめに」をご覧ください。
ビルトイン接続文字列デザイナー
JDBC URL の構成については、SharePoint Excel Services JDBC Driver に組み込まれている接続文字列デザイナーを使用してください。JAR ファイルのダブルクリック、またはコマンドラインからJAR ファイルを実行します。
java -jar cdata.jdbc.excelservices.jar
接続プロパティを入力し、接続文字列をクリップボードにコピーします。
SharePoint Excel Services の接続文字列は、通常次のようになります。
jdbc:excelservices:URL=https://myorg.sharepoint.com;User=admin@myorg.onmicrosoft.com;Password=password;File=Book1.xlsx;
構成済みのJDBC URL を使用して、DAO インターフェースのインスタンスを取得します。以下に示す特定のメソッドはインスタンスにバインドされたハンドルを開くため、ハンドルとバインドされたJDBC 接続を開放するには、インスタンスを明示的に閉じる必要があります。
DBI dbi = new DBI("jdbc:excelservices:URL=https://myorg.sharepoint.com;User=admin@myorg.onmicrosoft.com;Password=password;File=Book1.xlsx;");
MyAccountDAO dao = dbi.open(MyAccountDAO.class);
//do stuff with the DAO
dao.close();
SharePoint Excel Services データについて
SharePoint Excel Services への接続を開いた状態で以前定義したメソッドを呼び出すだけで、SharePoint Excel Services のAccount エンティティからデータを取得できます。
//disply the result of our 'find' method
String annualRevenue = dao.findAnnualRevenueByIndustry("Floppy Disks");
System.out.println(annualRevenue);
JDBI ライブラリはJDBC 接続を処理できるため、CData JDBC Driver for ExcelServices と統合することで、SQL Object API for ExcelServices を簡単に作成できます。今すぐ無料トライアルをダウンロードし、Java アプリケーションでリアルタイムSharePoint Excel Services を操作しましょう。