Hibernate - 簡単な問い合わせサンプルの実装(Quick Start)AdvertisementQuick Start
次に示すテーブルを読み込むアプリケーションを作成してみる。
table名:人
テーブルに対応するプロパティを保持しているクラスを作成する。 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!ログール |