Hibernate 2章 Hibernate を使ってみよう
	  	
	- 2.1. Hibernate とは
- 2.2. データベーススキーマの準備
- 2.3. Hibernate 設定ファイルの準備
- 2.4. マッピングファイルの準備
- 2.5. 永続化クラスの準備
- 2.6. Dao の準備
- 2.7. データの投入
- 2.8. まとめ
2.5 永続化クラスの準備
O/R マッピングの O[オー] のためのクラスを準備します。今回のサンプルでは、
 
/** 
 * Book.java * TECHSCORE Java Hibernate 2章
 * Copyright (c) 2005 Four-Dimensional Data, Inc. 
 */
package com.techscore.hibernate;
/**
 * 「本」を表す POJO。
 */
public class Book {
    private String isbn = null;
    private String name = null;
    private int price = -1;
    /**
     * @return isbn を戻します。
     */
    public String getIsbn() {
        return isbn;
    }
    /**
     * @param isbn
     *            isbn を設定。
     */
    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }
    /**
     * @return name を戻します。
     */
    public String getName() {
        return name;
    }
    /**
     * @param name
     *            name を設定。
     */
    public void setName(String name) {
        this.name = name;
    }
    /**
     * @return price を戻します。
     */
    public int getPrice() {
        return price;
    }
    /**
     * @param price
     *            price を設定。
     */
    public void setPrice(int price) {
        this.price = price;
    }
}
	
	永続化クラスは、ご覧の通りいたって普通の JavaBean です。
2.6 Dao の準備
	本プロジェクトでは、データの永続化、取り出しを行うことを目的とした Dao を作成することにします。
	まずは、Dao をサポートする抽象クラス DaoSupport クラスを作成しましょう。DaoSupport クラスは
	セッションを取得するためのgetSessionメソッドのみを実装することにします。
/** 
 * DaoSupport.java * TECHSCORE Java Hibernate 2章
 * Copyright (c) 2005 Four-Dimensional Data, Inc. 
 */
package com.techscore.hibernate;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
/**
 * Dao を補助するクラス
 */
public abstract class DaoSupport {
    protected Session getSession() {
        Configuration config = new Configuration().configure();
        SessionFactory sessionFactory = config.buildSessionFactory();
        Session session = sessionFactory.openSession();
        return session;
    }
}
	getSessionメソッドは、org.hibernate.Session クラスのインスタンス
	を返します。まずはそのままコピーして利用してください。
	次に、DaoSupport クラスを継承する BookDao クラスを作成します。BookDao クラスでは、
	Book クラスのインスタンスを引数で受け取り、受け取った Book クラスのインスタンスを
	永続化する save メソッドを実装します。
/** 
 * BookDao.java * TECHSCORE Java Hibernate 2章
 * Copyright (c) 2005 Four-Dimensional Data, Inc. 
 */
package com.techscore.hibernate;
import org.hibernate.Session;
import org.hibernate.Transaction;
/**
 * Book を扱う Dao 
 */
public class BookDao extends DaoSupport {
    public void save(Book book) {
        Session session = getSession();
        Transaction transaction = session.beginTransaction();
        session.save(book);
        transaction.commit();
        session.close();
    }
}
save メソッドでは、15行目で、セッションの取得を行い、16行目
	でトランザクションを開始しています。その後、18行目で、引数で渡された book オブジェクト
	を永続化しています。永続化するためのコードはこれだけです。SQL文の構築、PreparedStatement 等への値のセット等
	のソースは、全てこの一行に集約されています。
	そして、20から21行目で、コミットやセッションのクローズを行っています。

![Webアプリ開発エンジニアのための技術情報サイト[テックスコア]](/common/img/description.gif) 
 







