Hibernate3を使った永続オブジェクトの作成・検索・削除

No Comments

前回でHibernateをMavenで用いるための下準備を行った。

Hibernate3とMavenを使って,マッピング用のクラスやテーブルスキーマを自動生成する

そこで今回は実際に永続オブジェクトの作成・検索・削除を行なってみる。

一時的に作成したオブジェクトを永続オブジェクトに登録することによって,JVMが終了しても存在し続けるようにすることができる。

今回も勉強に用いたのは下記の書籍である。

http://www.amazon.co.jp/Hibernate-%E9%96%8B%E7%99%BA%E8%80%85%E3%83%8E%E3%83%BC%E3%83%88%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-James-Elliott/dp/487311215X

使用したMavenは3.0.4である。

プロジェクトの構成

プロジェクトの構成は前回に引き続き下記のようにする。
今回作成するjavaファイルは正しいパッケージのパスに保存する。

永続オブジェクトの作成

下記のようなCreateTest.javaファイルを作成する。
Sessionクラスのsaveメソッドに渡すことでオブジェクトは永続化される。

MavenでこちらのMainメソッドを実行するには,下記のプラグインをpom.xmlに追加する。

そのあと,下記のコマンドで実行できる。

コンパイルから行う場合は下記のようにする。

永続オブジェクトの検索

下記のようなQueryTest.javaを作成する。

クエリは前回,マッピング文書(Tag.hbm.xml)に記述したのであった。
下記のqueryタグがそれに該当する。

実行方法については”作成”のときと同様である。

永続オブジェクトの削除

savaメソッドのように,Sessionクラスのdeleteメソッドの引数として設定すれば,永続オブジェクトは一時オブジェクトに戻る。
そしてスコープ外や参照が無くなった時削除される。


Hibernate3とMavenを使って,マッピング用のクラスやテーブルスキーマを自動生成する

1 Comment

Hibernateの勉強として。
HibernateはJavaのORMとして有名なライブラリである。

今回やりたいことは下記の項目でHibernateを用いるための下準備となっている。

  1. マッピング用のアクセッサクラスを自動生成
  2. MySQLのテーブルのスキーマを自動生成

前提条件は下記のとおりである。

  • Maven2をインストール済みである
  • jdk7をインストール済みである
  • MySQL Serverをインストール済みである

下記の書籍を参考に用いた。
http://www.amazon.co.jp/Hibernate-%E9%96%8B%E7%99%BA%E8%80%85%E3%83%8E%E3%83%BC%E3%83%88%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-James-Elliott/dp/487311215X

使用したMavenは3.0.4である。

プロジェクトのファイル構成

まず,mavenプロジェクトの雛形を自動生成する。

ここで,プロジェクトの構成は下記のようにする。

pom.xmlについて

pomについては下記のように記述した。

Hibernateのコンフィグファイルを作成する

ファイル名はhibernate.cfg.xmlというものがよく使われているみたい。
今回はMySQLを用いるので,その設定を行なっている。
また,mappingタグにはマッピング文書へのパスを書く。
これをsrc/main/resourcesの中に保存する。

log4j.propertiesの設置

hibernateは内部でlog4jを用いているらしい。
src/main/resource内に保存する。

マッピング文書の作成

マッピング文書には自動生成されるクラスの情報やクエリを記述する。

アクセッサクラスの自動生成

以上を行った上で,下記のコマンドを実行すると,アクセッサクラスが自動生成される。

すると,pom.xmlで指定したsrc/main/java/jp.ne.sakura.www1205ufというディレクトリにTag.javaというファイルが自動生成される。
Tag.javaは下記のようになっている。

MySQLの下準備

スキームを自動生成するために,下記の操作を行いDBとそれにアクセスするユーザーを追加しておく。

このときのユーザーはhibernate.cfg.xmlに記述したものを用いる。

スキーマの自動生成

下記のコマンドを実行する。

すると,作成済みのDBにテーブルが自動的に作成される。

作成されたことは下記のコマンドで確認できる。

なお,以上のすべてを実行しコンパイルを行う場合は,下記のようにすればよい。

これで永続化オブジェクトを作成しDBにデータを格納したり,それを検索したりといった操作が可能になる。

それについては次回。