Hibernateをいじる(5)

いよいよ、動かしてみます。

1.Hibernate設定ファイル

HibernateがどのRDBを使い、マッピングファイルは何を使い…ということを指定するために設定ファイルを書きます。
ファイル名は、hibernate.cfg.xmlがデフォルトで、クラスパス内に置いておきます。

[xml]



org.hsqldb.jdbcDriver jdbc:hsqldb:hsql://localhost/ sa true org.hibernate.dialect.HSQLDialect create

[/xml]

ここでのポイントは1つだけ。
hibernate.hbm2ddl.autoです。マッピングファイルから、自動的にRDBにテーブルを作る機能の設定です。
例えば、createにすると、起動するたびにRDBにテーブルを自動生成します。
実際のプロジェクトで使うことがあるかというと微妙ですが、どういうマッピングファイルを書くと、どういうテーブルになるのか、Hibernateが答えを教えてくれるわけです。便利に使いましょう。もちろん、実験する際に重宝しますし。
今回のマッピングファイルは、省略できるものは省略するポリシーでしたから、テーブルの型や桁数等はすべてデフォルトです。
マッピングファイルでは、型名、桁数、NOT NULL等を設定できます。きちんと設定すれば、そのとおりのテーブルになるわけです。

2.HibernateUtilを作る

別に必須ではありませんが、Hibernateのマニュアルに沿って、HibernateUtilを作りました。少し、便利になります。

3.いざ!

例えば、何かを登録してみましょう。

[java]
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();
[/java]

参照はこんな感じ。

[java]
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();
[/java]

次回からは、もう少し高度なことをやってみます。

Hibernateをいじる(6)
久しぶりですが、Hibernate。次は、SELECT系をまとめておきます。1.get()で取る単純に主KEYで取る場合に使用します。DBに該当レコードがない場合はnullが返ります。似て非なるものにload()もあります。こちらはDBに該当レコードがないと例外になります。プロキシを...

Follow me!

コメントを残す