- 2.1. Hibernate とは
- 2.2. データベーススキーマの準備
- 2.3. Hibernate 設定ファイルの準備
- 2.4. マッピングファイルの準備
- 2.5. 永続化クラスの準備
- 2.6. Dao の準備
- 2.7. データの投入
- 2.8. まとめ
2.7 データの投入
やっと、Hibernate の動作を確認する時がきました。思えば長い道のりでした。 com.techscore.hibernate.BookSaverSample クラスを作成してください。BookSaverSample クラス では、BookDao を利用して Book オブジェクトを永続化します。
/** * BookSaverSample.java * TECHSCORE Java Hibernate 2章 * * Copyright (c) 2005 Four-Dimensional Data, Inc. */ package com.techscore.hibernate; /** * Book オブジェクトを永続化するサンプル */ public class BookSaverSample { public static void main(String args[]) {BookDao bookDao = new BookDao();
Book book = new Book(); book.setIsbn("ISBN4-7561-4340-7"); book.setName("ゼロから始めるJava 増補改訂版"); book.setPrice(1905);
bookDao.save(book);
Book book2 = new Book(); book2.setIsbn("ISBN4-7561-4383-0"); book2.setName("ゼロから始めるJSP/サーブレット"); book2.setPrice(2095);
bookDao.save(book2);
} }
12行目
で、BookDao インスタンスを生成しています。
14潤オ17行目、20潤オ23行目
で、生成した2つの
Book クラスのインスタンスを18行目、24行目
でそれぞれ永続化しています。
では、早速(?かなり手間がかかりましたが)実行してみましょう。
・・・・・・・・
2005/08/03 12:24:46 org.hibernate.tool.hbm2ddl.TableMetadata <init>
情報: indexes: [book_pkey]
2005/08/03 12:24:46 org.hibernate.tool.hbm2ddl.SchemaUpdate execute
情報: schema update complete
2005/08/03 12:24:46 org.hibernate.connection.DriverManagerConnectionProvider close
情報: cleaning up connection pool: jdbc:postgresql://localhost:5432/hibernate_master
2005/08/03 12:24:46 org.hibernate.impl.SessionFactoryImpl checkNamedQueries
情報: Checking 0 named queries
Hibernate: insert into BOOK (name, price, ISBN) values (?, ?, ?)
以上のように出力されたら成功です。データベースにアクセスして、データが投入されていることを確認しましょう。
本来必要となるはずの、INSERT 文がソースコードから消え去り、 いたってシンプルな記述になっているのがわかると思います。
あらかじめ記述しておいた、Book.hbm.xml によって、Hibernate は、Book オブジェクトと、
リレーショナルデータベースのレコードの関係を既に知っており、「この Book オブジェクト
を登録してください。」といういたってシンプルなメッセージで、全てを理解してくれるのです。
かなり便利になるのが体感できてきたと思います。
2.8 まとめ
この章では、Book クラスのインスタンスを永続化するためのアプリケーションを構築しました。
Hibernate が 設定ファイルとマッピングファイルを元に、
Book クラスのインスタンスを永続化する手続きを行ってくれているのが理解できたと思います。
これまで必要としていた、SQL 文の構築や、PreparedStatement への値のセット、SQLの発行
手続き等の作業は、実行時に Hibernate が全てやってくれるため、ソースコードからこれらの
手続きをなくすことができました。
以下に、この章で作成した設定ファイルとソースファイルをまとめておきます。
ファイル | 位置 | 備考 |
---|---|---|
hibernate.cfg.xml | road_to_hbm_master/src/ |
|
Book.hbm.xml | road_to_hbm_master/src/com/techscore/hibernate |
|
Book.java | road_to_hbm_master/src/com/techscore/hibernate |
|
DaoSupport.java | road_to_hbm_master/src/com/techscore/hibernate |
|
BookDao.java | road_to_hbm_master/src/com/techscore/hibernate |
|
BookSaveSample.java | road_to_hbm_master/src/com/techscore/hibernate |
|