製品をチェック

HCL Domino Driver の30日間無償トライアルをダウンロード

 ダウンロードはこちら

製品の詳細

HCL Domino アイコン HCL Domino JDBC Driver 相談したい

HCL Domino に連携するJava アプリケーションを素早く、簡単に開発できる便利なドライバー。

Java のHCL Domino データエンティティを使用したObject-Relational Mapping (ORM)

Object-relational mapping (ORM) 技術により、リレーショナルデータソースの操作が容易になり、論理的なビジネスモデルと物理的なストレージモデルを橋渡しすることができます。このチュートリアルに従って、HCL Domino への接続をJava ベースのORM フレームワークであるHibernate に連携します。

加藤龍彦
ウェブデベロッパー

最終更新日:2022-04-25
domino ロゴ

CData

jdbc ロゴ画像
Hibernate ロゴ

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

Hibernate を使用することで、オブジェクト指向のドメインモデルを従来のリレーショナルデータベースにマッピングすることができます。以下のチュートリアルでは、CData JDBC Driver for Domino を使用し、Hibernate でHCL Domino リポジトリのORM を生成する方法を説明します。

この記事を通してEclipse がIDE として選択されていますが、CData JDBC Driver for Domino はJava Runtime Environment をサポートするすべての 製品で機能します。Knowledge Base には、IntelliJ IDEA やNetBeans からHCL Domino に接続するためのチュートリアルがあります。

Hibernate をインストール

以下のステップに従って、Eclipse にHibernate プラグインをインストールします。

  1. Eclipse で、[Help]->[Install New Software]と進みます。
  2. Work With ボックスに[http://download.jboss.org/jbosstools/neon/stable/updates/] と入力します。
  3. フィルタボックスに、[Hibernate]と入力します。
  4. [Hibernate Tools]を選択します。
Installing the Hibernate Framework in Eclipse.

新しいプロジェクトを開始

以下のステップに従って、新しいプロジェクトにドライバーJARs を追加します。

  1. 新しいプロジェクトを作成します。プロジェクトタイプとして[Java Project]を選択し、[Next]をクリックします。プロジェクト名を入力し、[Finish]をクリックします。
  2. [project]を右クリックし、[Properties]を選択します。[Java Build Path]をクリックし、[Libraries]タブを開きます。
  3. [Add External JARs]をクリックし、インストールディレクトリのlib サブフォルダにあるcdata.jdbc.domino.jar ライブラリを追加します。

Hibernate 構成ファイルを追加

以下のステップに従って、HCL Domino に接続プロパティを構成します。

  1. [new project]で右クリックし、[New]->[Hibernate]->[Hibernate Configuration File (cfg.xml)]と進みます。
  2. 親フォルダとして[src]を選択し、[Next]をクリックします。
  3. 以下の値をインプットします。

    • Hibernate version:5.2
    • Database dialect:Derby
    • Driver class: cdata.jdbc.domino.DominoDriver
    • Connection URL:jdbc:domino: で始まり、セミコロンで区切られた接続プロパティのリストが続くJDBC URL

      Domino 接続プロパティの取得・設定方法

      接続の前に

      CData 製品を経由してDomino に接続するには、「Proton コンポーネント」のインストールが必要です。通常、 Proton はAppDev パックの一部として配布されています。Proton またはAppDev パックの入手およびインストール方法については、HCL のドキュメントを参照してください。

      CData 製品は匿名アクセス、またはクライアント証明書の提供によりProton を認証できます。 これらのオプションは両方ともDomino で特定の設定が必要です。

      次の2セクションでは、接続に必要な事前設定について説明します。使用したい認証方法に対応するセクションを参照してください。

      クライアント証明書による認証の設定

      クライアント証明書による認証では、CData 製品は専用のユーザーアカウントとして接続します。このユーザーには、接続するすべてのデータベースに対するdesigner またはそれ以上のアクセス権が付与する必要があります。

      また、CData 製品を使用するためにはユーザーがインターネット証明書を取得する必要があります。サーバーコンソールで以下のコマンドを実行することで、Proton にこの証明書を作成させることができます。 APPUSER はCData 製品でアクセス設定するユーザーアカウント名、ADMINISTRATOR は証明書を受け取るユーザー名です。

      load proton --setupclient "APPUSER" --sendto "ADMINISTRATOR"

      新しい証明書は、Notes のADMINISTRATOR メールボックスから利用できます。証明書は、クライアント証明書(clientcert)およびキー(clientkey)の2ファイルに分けて送信される場合があります。 キーファイルのテキストを証明書ファイルの末尾にコピーアンドペーストして、2つのファイルを結合する必要があります。

      匿名認証の設定

      匿名アクセスでは、CData 製品はAnonymous という一般的なユーザーアカウントで接続します。 接続するすべてのデータベースには、次の2つの権限が設定される必要があります。

      • Anonymous ユーザーには、designer またはそれ以上のデータベースへのアクセス権が付与される必要があります。
      • データベースは、Maximum Internet name and password オプションがdesigner またはそれ以上のアクセスに設定される必要があります。 この設定は、データベースのAccess Control List オプションのAdvanced タブにあります。

      Domino への接続

      接続するには以下を設定します。

      • Server:Proton サービスを使ってDomino を実行中のサーバーのIP アドレス。
      • Port:Proton サービスがリッスンしているポート番号。
      • Database:.nsf 拡張子を含むデータベースファイル名。
      • SSLServerCert:サーバーが受け入れ可能なTLS/SSL 証明書に設定。コンピュータによって信頼されていない他の証明書はすべて拒否されます。または、"*" を設定するとすべての証明書を受け入れます。

      Domino への認証

      CData 製品は、クライアント証明書を使用してProton に認証することも、匿名アクセスで認証することも可能です。

      クライアント証明書による認証

      クライアント証明書で認証するには以下を設定します。

      • AuthSchemeSSLCertificate に設定。
      • SSLClientCertType:これは、証明書ファイルの形式と一致する必要があります。 通常、.pem 証明書の場合はPEMKEY_FILE、.pfx 証明書の場合はPFXFILE のいずれかになります。
      • SSLClientCert:証明書ファイルへのパス。

      匿名認証

      匿名認証を使用するには、AuthSchemeAnonymous に設定します。

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

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

      java -jar cdata.jdbc.domino.jar

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

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

      以下は一般的なJDBC URL です。

      jdbc:domino:Server=https://domino.corp.com;Database=names.nsf;Port=3002;SSLClientCertType=PEMKEY_FILE;SSLClientCert=full_path_of_certificate.pem;SSLServerCert=*

Hibernate のHCL Domino データへの接続

以下のステップに従って、前の手順で作成した構成を選択します。

  1. [Window]->[Open Perspective]->[Hibernate]と進み、Hibernate Configurations パースペクティブに切り替えます。
  2. [Hibernate Configurations]パネルで右クリックし、[Add Configuration]を選択します。
  3. Hibernate version を5.2に設定します。
  4. [Browse]ボタンをクリックし、[project]を選択します。
  5. [Configuration file]フィールドで、[Setup]->[Use Existing]とクリックし、(このデモのsrc フォルダー内にある)hibernate.cfg.xml ファイルを選択します。
  6. [Classpath tab]で、[User Entries]の下に何もなかった場合、[Add External JARS]をクリックしてドライバーjar をもう一度追加します。構成が完了したら、[OK]をクリックします。
  7. 新しく作成されたHibernate 構成ファイルのDatabase node を展開します。
Hibernate configuration properties.(NetSuite is shown.)

HCL Domino データをリバースエンジニアリング

以下のステップに従って、reveng.xml 構成ファイルを生成します。アクセスするテーブルをオブジェクトとして指定します。

  1. Package Explorer に戻ります。
  2. プロジェクトを右クリックし、[New]->[Hibernate]->[Hibernate Reverse Engineering File (reveng.xml)]と進みます。[Next]をクリックします。
  3. 親フォルダとして[src]を選択し、[Next]をクリックします。
  4. [Console configuration drop-down]メニューで、上で作成した[Hibernate configuration]ファイルを選択し、[Refresh]をクリックします。
  5. ノードを展開し、リバースエンジニアリングするテーブルを選択します。完了したら、[Finish]をクリックします。
Tables to be reverse engineered.(NetSuite is shown.)

実行するためのHibernate を構成

以下のステップに従って、plain old Java objects (POJO) をHCL Domino テーブルに生成します。

  1. メニューバーから、[Run]->[Hibernate Code Generation]->[Hibernate Code Generation Configurations]と進みます。
  2. [Console configuration drop-down]メニューで、前のセクションで作成した[Hibernate configuration]ファイルを選択します。Output ディレクトリで[Browse]をクリックし、src を選択します。
  3. [JDBC Connection]チェックボックスから[Reverse Engineer]を有効にします。[Setup]ボタンをクリックし、[Use Existing]をクリックして(このデモのsrcフォルダ内にある) hibernate.reveng.xml ファイルの場所を選択します。
  4. [Exporters]タブで[Domain code (.java)]と[Hibernate XML Mappings (hbm.xml)]をチェックします。
  5. [Run]をクリックします。

POJO は、前のステップのリバースエンジニアリング設定に基づいて作成されます。

マッピングタグを挿入

生成したマッピングごとにhibernate.cfg.xml にマッピングタグを作成し、Hibernate がマッピングリソースを指定するようにする必要があります。hibernate.cfg.xml を開き、次のようにマッピングタグを挿入します。

cdata.domino.DominoDriver jdbc:domino:Server=https://domino.corp.com;Database=names.nsf;Port=3002;SSLClientCertType=PEMKEY_FILE;SSLClientCert=full_path_of_certificate.pem;SSLServerCert=* org.hibernate.dialect.SQLServerDialect

SQLを実行

前の手順で作成したエンティティを使用して、HCL Domino のsearchを行うことができます。 import java.util.*; import org.hibernate.Session; import org.hibernate.cfg.Configuration; import org.hibernate.query.Query; public class App { public static void main(final String[] args) { Session session = new Configuration().configure().buildSessionFactory().openSession(); String SELECT = "FROM ByName B WHERE City = :City"; Query q = session.createQuery(SELECT, ByName.class); q.setParameter("City","Miami"); List<ByName> resultList = (List<ByName>) q.list(); for(ByName s: resultList){ System.out.println(s.getName()); System.out.println(s.getAddress()); } } }

関連コンテンツ

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

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