ホーム > Blog > タグ > hibarnate

hibarnate

Hibernateをいじる(5)

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

1.Hibernate設定ファイル

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

  1.  
  2. <~xml version="1.0" encoding="UTF-8">
  3. <!DOCTYPE hibernate-configuration PUBLIC
  4. "-//Hibernate/Hibernate Configuration DTD//EN"
  5. "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  6. <hibernate-configuration>
  7. <session-factory>
  8. <property name="connection.driver_class">org.hsqldb.jdbcDriver</property>
  9. <property name="connection.url">jdbc:hsqldb:hsql://localhost/</property>
  10. <property name="connection.username">sa</property>
  11. <property name="connection.password"></property>
  12. <property name="show_sql">true</property>
  13. <property name="dialect">org.hibernate.dialect.HSQLDialect</property>
  14. <property name="hibernate.hbm2ddl.auto">create</property>
  15. <mapping resource="study/domain/Subject.hbm.xml"/>
  16. <mapping resource="study/domain/Student.hbm.xml"/>
  17. <mapping resource="study/domain/Report.hbm.xml"/>
  18. <mapping resource="study/domain/Examination.hbm.xml"/>
  19. <mapping resource="study/domain/Study.hbm.xml"/>
  20. </session-factory>
  21. </hibernate-configuration>

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

2.HibernateUtilを作る

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

3.いざ!

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

  1.  
  2. Session session = HibernateUtil.currentSession();
  3.  
  4. Transaction tx = session.beginTransaction();
  5.  
  6. //科目の登録
  7. Subject kenpo = new Subject();
  8. kenpo.setCode("14501");
  9. kenpo.setName("憲法");
  10. kenpo.setCredit(4);
  11.  
  12. session.saveOrUpdate(kenpo);
  13.  
  14. //学生の登録
  15. Student erika = new Student();
  16. erika.setId("0499001");
  17. erika.setName("三好絵梨香");
  18.  
  19. session.saveOrUpdate(erika);
  20.  
  21. tx.commit();
  22.  
  23. HibernateUtil.closeSession();

参照はこんな感じ。

  1.  
  2. Session session = HibernateUtil.currentSession();
  3.  
  4. Query query = session.createQuery("from Student as s where s.name=~");
  5. query.setString(0, "三好絵梨香");
  6. Student erika = (Student)query.uniqueResult();
  7.  
  8. System.out.println(erika.toString());
  9.  
  10. HibernateUtil.closeSession();

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

「Hibernateをいじる(6)」につづく

Home > Blog > タグ > hibarnate

プロフィール

井上 研一
10年ほどITエンジニアをやっています。Twitterなどネットサービスでは「inoccu」(イノック)というハンドルで活動中。IT業界、モバイルのことや本を読んだ感想、ライフハック、それからハロプロに関することなどを、このブログに書いているほか、たまに何かソフトウェアを作って公開(最近はAndroidアプリ)することもあります。詳細なプロフィールはこちら。

井上研一
ナビゲーション
メタ情報

あわせて読みたいブログパーツ

Get Adobe Flash playerPlugin by wpburn.com wordpress themes

Return to page top