3.Hibernate を使ってみよう2
2005.09.13 株式会社四次元データ 瀧下 浩
2章では、Hibernate 導入のための各種設定と、データを永続化するための簡単なアプリケーションを 作成しました。3章では、Hibernate を使って、永続化されたデータを扱うアプリケーションを作成します。 具体的には、永続化されているデータを検索したり、更新したり、削除したりするアプリケーションです。
3.1 データのロード
では、2.7 データの投入 で投入したデータをロードしてみましょう。
まずは、BookDao クラスに、load メソッドを実装します。
public Book load(String isbn) {Session session = getSession();
Book book = (Book) session.load(Book.class, isbn);
session.close(); return book; }
2行目
でセッションを取得し、3行目
でデータをロードしています。SQL文の発行や、結果セットからのBookインスタンスの構築のための手続きは不要です。
これらの作業は、Hibernate が実行時に行ってくれるからです。
次に、データをロードして表示するクラス BookLoaderSample クラスを作成します。
/** * BookLoaderSample.java * TECHSCORE Java Hibernate 3章 * Copyright (c) 2005 Four-Dimensional Data, Inc. */ package com.techscore.hibernate; /** * Book オブジェクトをロードするサンプル */ public class BookLoaderSample { public static void main(String args[]) { Book book = new BookDao().load("ISBN4-7561-4340-7"); System.out.println(book); } }
それでは、早速実行してみてください。
com.techscore.hibernate.Book@10045eb
おっと、これでは分かりにくいので、Book クラスで toString メソッドをオーバーライドしておきましょう。
ここでは、Jakarta Commons サブプロジェクトの Lang に含まれる、ToStringBuilder クラスを利用することにします。
public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); }
それでは、再度実行してみましょう。
Book[isbn=ISBN4-7561-4340-7,name=ゼロから始めるJava 増補改訂版,price=1905]
分かりやすくなりましたね。
Hibernate を使うことで、永続化されているオブジェクトを簡単に取得できるのがお分かりいただけたでしょうか。 本来 BookDao で必要となるはずの SQL文の構築、PreparedStatementへの値セット、 結果セットからの Book オブジェクトの構築等の作業が、きれいさっぱりなくなっています。