Maven 3 Hibernate 3.6 Oracle 11gの例(XMLマッピング)

Maven 3 + Hibernate 3.6 + Oracle 11gの例(XMLマッピング)

この記事では、Maven3Hibernate3.6、およびOracle11gを統合する方法を示します。 この記事の最後では、Mavenを使用してJavaプロジェクトを作成し、Hibernateフレームワークを介してOracleデータベースにレコードを挿入します。

この記事で使用したツールとテクノロジー:

  1. Maven 3.0.3

  2. JDK 1.6.0_13

  3. Hibernate 3.6.3.final

  4. 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ファイルを更新し、関連するすべての依存関係を追加します。

  1. 最新のHibernatejarとその依存関係に対して「JBossリポジトリ」を宣言する必要があります。

  2. 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. 最終プロジェクト構造の確認

確認すると、プロジェクトの構造は次のようになります。

project folder structure

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コンソールビューで出力を確認します。

Eclipse view result

完了しました。

ダウンロード–Maven3-Hibernate3.6-Oracle11-Example.zip(8KB)