Maven 3 + Hibernate 3.6 + Oracle 11gの例(XMLマッピング)
この記事では、Maven3、Hibernate3.6、およびOracle11gを統合する方法を示します。 この記事の最後では、Mavenを使用してJavaプロジェクトを作成し、Hibernateフレームワークを介してOracleデータベースにレコードを挿入します。
この記事で使用したツールとテクノロジー:
-
Maven 3.0.3
-
JDK 1.6.0_13
-
Hibernate 3.6.3.final
-
Oracle 11g
1. テーブル作成
データベースに「DBUSER」テーブルを作成するためのOracleSQLスクリプト。
CREATE TABLE DBUSER ( USER_ID NUMBER (5) NOT NULL, USERNAME VARCHAR2 (20) NOT NULL, CREATED_BY VARCHAR2 (20) NOT NULL, CREATED_DATE DATE NOT NULL, PRIMARY KEY ( USER_ID ) )
2. Mavenでプロジェクトを作成する
Mavenを使用して、標準プロジェクト構造を作成します。
mvn archetype:generate -DgroupId=com.example -DartifactId=HibernateExample -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Note
詳細については、このHow to create a
Java project with Mavenを参照してください。
3. MavenからEclipse IDE
生成されたMavenベースのプロジェクトをEclipseプロジェクトに変換し、Eclipse IDEにインポートします。
mvn eclipse:eclipse
4. HibernateとOracleの依存関係を追加する
pom.xml
ファイルを更新し、関連するすべての依存関係を追加します。
-
最新のHibernatejarとその依存関係に対して「JBossリポジトリ」を宣言する必要があります。
-
Oracle JDBCドライバーの場合、ローカルのMavenリポジトリに手動でインストールする必要があります。
For Oracle JDBC Driver
このガイドを読む–How
to add Oracle JDBC driver in your Maven local repository
ファイル:pom.xml
4.0.0 com.example.common HibernateExample jar 1.0 HibernateExample http://maven.apache.org JBoss repository http://repository.jboss.org/nexus/content/groups/public/ junit junit 4.8.2 test com.oracle ojdbc6 11.2.0 org.hibernate hibernate-core 3.6.3.Final javassist javassist 3.12.1.GA
5. Hibernateマッピングファイル(hbm)+モデル
テーブル「DBUSER」のHibernateXMLマッピングファイルとModelクラスを作成します。
–次の「DBUser.hbm.xml
」ファイルを作成し、「src/main/resources/com/example/user」の下に置きます。
Note
フォルダーが存在しない場合は作成します。
ファイル:DBUser.hbm.xml
–「DBUser.java
」ファイルを作成し、「src/main/java/com/example/user/」の下に置きます
ファイル:DBUser.java
package com.example.user; import java.util.Date; /** * Dbuser generated by hbm2java */ public class DBUser implements java.io.Serializable { private int userId; private String username; private String createdBy; private Date createdDate; public DBUser() { } public DBUser(int userId, String username, String createdBy, Date createdDate) { this.userId = userId; this.username = username; this.createdBy = createdBy; this.createdDate = createdDate; } public int getUserId() { return this.userId; } public void setUserId(int userId) { this.userId = userId; } public String getUsername() { return this.username; } public void setUsername(String username) { this.username = username; } public String getCreatedBy() { return this.createdBy; } public void setCreatedBy(String createdBy) { this.createdBy = createdBy; } public Date getCreatedDate() { return this.createdDate; } public void setCreatedDate(Date createdDate) { this.createdDate = createdDate; } }
6. Hibernate設定ファイル
Hibernate構成ファイル「hibernate.cfg.xml」を作成し、それをリソースフォルダー「src/main/resources/hibernate.cfg.xml」のルートの下に置き、Oracleデータベースの詳細を入力します。 そして、上記のHibernateマッピングファイル「DBUser.hbm.xml」にマップします。
ファイル:hibernate.cfg.xml
oracle.jdbc.driver.OracleDriver jdbc:oracle:thin:@127.0.0.1:1521:MKYONG example password org.hibernate.dialect.Oracle10gDialect MKYONG true
7. Hibernateユーティリティ
従来の「HibernateUtil.java
」クラスを作成して、Hibernateセッション管理を処理します。 そして、「src/main/java/com/example/util/HibernateUtil.java」の下に置きます
ファイル:HibernateUtil.java
package com.example.util; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static final SessionFactory sessionFactory = buildSessionFactory(); private static SessionFactory buildSessionFactory() { try { // Create the SessionFactory from hibernate.cfg.xml return new Configuration().configure().buildSessionFactory(); } catch (Throwable ex) { // Make sure you log the exception, as it might be swallowed System.err.println("Initial SessionFactory creation failed." + ex); throw new ExceptionInInitializerError(ex); } } public static SessionFactory getSessionFactory() { return sessionFactory; } public static void shutdown() { // Close caches and connection pools getSessionFactory().close(); } }
8. 最終プロジェクト構造の確認
確認すると、プロジェクトの構造は次のようになります。
9. 休止状態のコーディング
「App.java
」を更新して、ダミーのユーザーレコードをテーブル「DBUSER」に保存するようにHibernateをコーディングします。
ファイル:App.java
package com.example; import java.util.Date; import org.hibernate.Session; import com.example.util.HibernateUtil; import com.example.user.DBUser; public class App { public static void main(String[] args) { System.out.println("Maven + Hibernate + Oracle"); Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction(); DBUser user = new DBUser(); user.setUserId(100); user.setUsername("superman"); user.setCreatedBy("system"); user.setCreatedDate(new Date()); session.save(user); session.getTransaction().commit(); } }
10. それを実行します
「App.java
」を実行し、Eclipseコンソールビューで出力を確認します。
完了しました。
ダウンロード–Maven3-Hibernate3.6-Oracle11-Example.zip(8KB)