@634

Hibernate - 簡単な問い合わせサンプルの実装(Quick Start)

Advertisement

Quick Start

次に示すテーブルを読み込むアプリケーションを作成してみる。

table名:人
id名前
1tarou
2jirou
3saburou

テーブルに対応するプロパティを保持しているクラスを作成する。

Human.java
public class Human {
    private String id = null;
    private String name =null;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

テーブルとクラスを結びつけるための設定はXMLファイルに行う。
human.hbm.xml
<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="Human" table="人">
        <id name="id" column="id">
            <generator class="increment" />
        </id>
        <property name="name" type="java.lang.String" column="name"/>
    </class>
</hibernate-mapping>
classタグ
name属性に作成したクラスを指定する。
table属性にテーブル名を指定する。

idタグ
name属性にテーブルの主キーとなっている列の列名を指定する。
column属性にclassタグのname属性に指定したクラスの対応するプロパティ名を指定する。

generatorタグ
Hibernateでは作成したインスタンスを識別するためにユニークなIDを付加している。このIDを付加するためのクラスを指定する。incrementを指定すると、ユニークIDはインクリメント(加算)作成される。
詳細は下記を参照
http://www.hibernate.org/hib_docs/reference/ja/html_single/#mapping-declaration-id-generator

propertyタグ - 主キー以外の項目を設定する。
name属性にテーブルの列名を指定する。
column属性にclassタグのname属性に指定したクラスの対応するプロパティ名を指定する。
type属性にjavaのクラス名を完全限定名で指定する。

次にHibernateの設定ファイルを記述する。
hibernate.cfg.xml
<?xml version="1.0" encoding="Shift_JIS"?>

<!DOCTYPE hibernate-configuration PUBLIC
 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
 <session-factory >
     <property name="connection.driver_class">sun.jdbc.odbc.JdbcOdbcDriver</property>
     <property name="connection.url">jdbc:odbc:sample</property>
     <property name="connection.username"></property>
     <property name="connection.password"></property>
     <property name="show_sql">true</property>

     <mapping resource="human.hbm.xml"/>
 </session-factory>
</hibernate-configuration>
データベースにアクセスするための情報と、作成したORマッピング設定ファイルを指定する。
Hibernateには、JDBCやデータソースなど、様々なコネクション取得方法がサポートされている。今回の例ではJDBCを利用しており、Hibernateはjava.sql.DriverManagerを利用してコネクションの取得を行う。

おまけ)データベースの情報は.propertyファイルに指定することもできる。
jdbc.properties
hibernate.connection.driver_class=sun.jdbc.odbc.JdbcOdbcDriver
hibernate.connection.url=jdbc:odbc:sample
hibernate.connection.username=
hibernate.connection.password=
hibernate.connection.pool_size=10

ここまででORマッピングの設定が完了した。実際のソースコードの中で利用してみる。

Select.java
import java.util.Iterator;
import java.util.List;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class Select {

    public static void main(String input[]) {

        SessionFactory sessionFactory;
        Session session;

        try {
            sessionFactory = new Configuration().configure().buildSessionFactory();
            session = (Session) sessionFactory.openSession();

            List list = session.createCriteria(Human.class).list();
            Iterator iterator = list.iterator();

            while(iterator.hasNext()){
                Human human = (Human)iterator.next();
                System.out.println(human.getId() + "\t" + human.getName());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

実行結果
1    たろう
2    じろう
3    さぶろう

Advertisement

ショートカット

634
634ブログ
このカテゴリのトップページに戻る
Incubator(Pukiwiki)
634ラボ
   UIコレクションギャラリー
   ZO-3ジェネレーター

サイト検索


Y!ログール