いよいよ、動かしてみます。
1.Hibernate設定ファイル
HibernateがどのRDBを使い、マッピングファイルは何を使い…ということを指定するために設定ファイルを書きます。
ファイル名は、hibernate.cfg.xmlがデフォルトで、クラスパス内に置いておきます。
org.hsqldb.jdbcDriver jdbc:hsqldb:hsql://localhost/ sa true org.hibernate.dialect.HSQLDialect create
ここでのポイントは1つだけ。
hibernate.hbm2ddl.autoです。マッピングファイルから、自動的にRDBにテーブルを作る機能の設定です。
例えば、createにすると、起動するたびにRDBにテーブルを自動生成します。
実際のプロジェクトで使うことがあるかというと微妙ですが、どういうマッピングファイルを書くと、どういうテーブルになるのか、Hibernateが答えを教えてくれるわけです。便利に使いましょう。もちろん、実験する際に重宝しますし。
今回のマッピングファイルは、省略できるものは省略するポリシーでしたから、テーブルの型や桁数等はすべてデフォルトです。
マッピングファイルでは、型名、桁数、NOT NULL等を設定できます。きちんと設定すれば、そのとおりのテーブルになるわけです。
2.HibernateUtilを作る
別に必須ではありませんが、Hibernateのマニュアルに沿って、HibernateUtilを作りました。少し、便利になります。
3.いざ!
例えば、何かを登録してみましょう。
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction();
//科目の登録
Subject kenpo = new Subject();
kenpo.setCode("14501");
kenpo.setName("憲法");
kenpo.setCredit(4);
session.saveOrUpdate(kenpo);
//学生の登録
Student erika = new Student();
erika.setId("0499001");
erika.setName("三好絵梨香");
session.saveOrUpdate(erika);
tx.commit();
HibernateUtil.closeSession();
参照はこんな感じ。
Session session = HibernateUtil.currentSession();
Query query = session.createQuery("from Student as s where s.name=~");
query.setString(0, "三好絵梨香");
Student erika = (Student)query.uniqueResult();
System.out.println(erika.toString());
HibernateUtil.closeSession();
次回からは、もう少し高度なことをやってみます。