Hibernate 上で JPA を動かす Getting Started。
(後で
Toplink もやってみる。)
以下の環境で、"Hello, World!"を出力するものを作ってみる。
- Eclipse 3.5 + m2Eclipse
- Maven 2.2.1
- MySQL 5.0.45
- Hibernate 3.3.2
■ データベースの用意mysql> create database db1;
mysql> connect db1;
mysql> create table t1 (c1 int primary key, c2 varchar(20));
mysql> insert into t1 (c1, c2) values(100, 'World');
mysql> select * from t1;
+-----+-------+
| c1 | c2 |
+-----+-------+
| 100 | World |
+-----+-------+
■ プロジェクト生成
■ Hello World 作成- [Build Path]->[New Source Folder...]で、src/main/resource を追加。
- 上記ソースフォルダに、META-INF/persistence.xmlを作成。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.0"
xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
<persistence-unit name="em1" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/db1"/>
</properties>
</persistence-unit>
</persistence>
ユーザ名/パスワード、その他のプロパティを指定する場合は[ここ参照] - こんなエンティティクラスを書く
package net.yasuabe.studies.jpa_hib_test1;
import javax.persistence.Entity;
import javax.persistence.Id;
@Entity
public class T1 {
@Id
private int c1;
private String c2;
public int getC1() { return c1; }
public void setC1(int c1) { this.c1 = c1; }
public String getC2() { return c2; }
public void setC2(String c2) { this.c2 = c2; }
}
- App のmain() を書き換える
public static void main(String[] args) {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("em1");
EntityManager em = emf.createEntityManager();
T1 t1 = em.find(T1.class, 100);
System.out.printf("Hello, %s!%n", t1.getC2());
em.close();
emf.close();
}
■ 確認
実行すると、Hibernate のログ出力に混じって、コンソールビューに Hello, World! が出力されているのがわかる。いったん動いたら、後はまあ楽。
ちなみに 新規 Maven Project で jpa-maven-archetype というアーキタイプも使える(http://maven.rodcoffin.com/repo)。上のやり方でやった場合とちょっと違う構成になる。
0 件のコメント:
コメントを投稿