次へ→ユーザ情報テーブルでのHibernate利用はじめに、ユーザ情報テーブルに対して、Hibernateを利用してO/Rマッピングを作成してみましょう。そのクラス内のプロパティ、setterメソッド(set(プロパティ名))、getterメソッド(get(プロパティ名))をテーブル内のカラムと対応させる必要があります。作成したstruts2todoプロジェクトに対して、以下のような構造で作成するものとします。java.lang.StringHibernateを使用可能にするまず、Hibernate関連のファイルをダウンロードし、プロジェクトのクラスパスに追加しましょう。以下のファイルをダウンロードし、適当なディレクトリに展開してください。slf4j-1.5.6.zipStruts2に関連するJARファイルをWEB-INF/libにコピーします。さきほど展開したzipファイルから以下のファイルをWEB-INF/libにコピーしてください。前記で追加したWEB-INF/lib以下のJARファイルを設定してください。これで、JavaプログラムからJARファイル内にあるクラスを参照可能になります。アノテーションの追加Javaクラスにアノテーションを追加していきます。アノテーションとは、@から始まる文字列をクラス定義やメンバ定義に付加することで、クラスやメンバに追加情報を定義する手法です。JPAでは、以下のようなアノテーションを定義することができます。クラスが永続化可能であることを明示します。クラスが対応しているテーブルを明示します。メンバがIDであることを明示します。メンバが対応しているカラムを明示します。test.Userクラスを以下のように修正します。{UserクラスがTODO_USERと関連づいたクラスであることの宣言。JPAのアノテーションルールに従って、「@(アノテーション情報)」の形式で情報を付加します。{IdプロパティがIDであることと、カラム名がIDであることの宣言。{Nameプロパティに対応するカラム名がNAMEであることの宣言。同様に、Passwordプロパティに関しても定義をおこないます。Actionクラスの修正データベースからのデータ取得処理をJPAを利用する形に修正していきます。データベースからデータを取得するためには、Hibernateが提供するjavax.persistence.EntityManagerオブジェクトを利用します。具体的には、以下のメソッドを使用してデータベースからオブジェクトを取得する処理を実装します。javax.persistence.Persistenceとjavax.persistence.EntityManagerFactoryを使用する。EntityManagerFactory.createEntityManager()を呼び出しEntityManagerを取得する。設定名は後述するpersistence.xmlに記述したものを指定する。EntityManager.createQuery(String)を使用する。第1引数にはJPQLで記述したクエリを指定し、Query.getResultList()によりクエリに該当するオブジェクトを取得することができる。(変数名)の形式で記述する。クラス名には永続化クラス名を指定し、変数名2箇所は同じにする必要がある。(条件文)の形式で記述する。定数を指定したりすることができる。Actionクラスを、JPAが提供するjavax.persistence.EntityManagerクラスを利用するように修正します。}EntityManagerを取得する処理。後述する設定ファイルに記述された設定名(今回は"sample")をキーとしてEntityManagerを取得します。}EntityManagerから特定のIDを持つUserを取得する処理。JPQLをクエリとしてUserオブジェクトの取得をおこないます。}EntityManagerから全Userを取得する処理。設定ファイルを作成します。WEB-INF/src/META-INF以下にpersistence.xmlを作成します。ここでは、データベースの情報などを指定します。</class>Userクラスを永続化することの宣言。</properties>接続対象のデータベースに関する宣言。Databaseに接続することを指定しています。dialectとは、データベース間のSQLにおける方言を吸収するためのクラスです。接続するデータベースにより、この指定を変更する必要があります。ここまでのファイルここまででプロジェクトディレクトリの内容は以下のようになります。作成できているか、確認してください。struts2todo_1.zipデバッグブラウザで以下のURLを開きます。