この記事では、

Maven3



Hibernate3.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

“テーブルを作成するOracle SQLスクリプト。

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.mkyong -DartifactId=HibernateExample
-DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

3. MavenからEclipse IDEへ

生成されたMavenベースのプロジェクトをEclipseプロジェクトに変換し、Eclipse IDEにインポートします。

mvn eclipse:eclipse

4. HibernateとOracle依存関係を追加する

`pom.xml`ファイルを更新し、関連するすべての依存関係を追加してください。

  1. あなたは最新のHibernate jarファイルのために “JBossリポジトリ”と宣言する必要があります.

その依存関係。

  1. Oracle JDBCドライバの場合、ローカルのMavenにインストールする必要があります

手動でリポジトリ


File:pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
    http://maven.apache.org/maven-v4__0__0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.mkyong.common</groupId>
    <artifactId>HibernateExample</artifactId>
    <packaging>jar</packaging>
    <version>1.0</version>
    <name>HibernateExample</name>
    <url>http://maven.apache.org</url>

    <!-- JBoss repository for Hibernate -->
    <repositories>
        <repository>
            <id>JBoss repository</id>
            <url>http://repository.jboss.org/nexus/content/groups/public/</url>
        </repository>
    </repositories>

    <dependencies>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
            <scope>test</scope>
        </dependency>

        <!-- ORACLE JDBC driver, need install yourself -->
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0</version>
        </dependency>

        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.6.3.Final</version>
        </dependency>

        <dependency>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.12.1.GA</version>
        </dependency>

    </dependencies>
</project>

5.ハイバネーションマッピングファイル(hbm)モデル

テーブル ”

DBUSER

“のHibernate XMLマッピングファイルとModelクラスを作成します。

  • 次の “DBUser.hbm.xml”ファイルを作成し、 ”

    src/main/resources/com/mkyong/user

    “の下に置きます。

    • 注意** フォルダが存在しない場合は作成してください。


File:DBUser.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="com.mkyong.user.DBUser" table="DBUSER">
        <id name="userId" type="int">
            <column name="USER__ID" precision="5" scale="0"/>
            <generator class="assigned"/>
        </id>
        <property name="username" type="string">
            <column name="USERNAME" length="20" not-null="true"/>
        </property>
        <property name="createdBy" type="string">
            <column name="CREATED__BY" length="20" not-null="true"/>
        </property>
        <property name="createdDate" type="date">
            <column name="CREATED__DATE" length="7" not-null="true"/>
        </property>
    </class>
</hibernate-mapping>

  • “DBUser.java”ファイルを作成し、 ”

    src/main/java/com/mkyong/user/

    “の下に置きます。


File:DBUser.java

package com.mkyong.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;
    }

}

  • Note ** あなたはこの記事を読むことができます:リンク://hibernate/how-to-generate-code-with-hibernate-tools/[Hibernateマッピングファイルを自動的に生成するEclipse Hibernateツール]

6.ハイバネート設定ファイル

Hibernate設定ファイル ”

hibernate.cfg.xml

“を作成し、リソースフォルダ ”

src/main/resources/hibernate.cfg.xml

“のルートに置き、Oracleデータベースの詳細を記入してください。そして、Hibernateマッピングファイルの上にマップする – ”

DBUser.hbm.xml

“。


File:hibernate.cfg.xml

<?xml version="1.0" encoding="utf-8"?>
<!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="hibernate.connection.driver__class">oracle.jdbc.driver.OracleDriver</property>
  <property name="hibernate.connection.url">jdbc:oracle:thin:@127.0.0.1:1521:MKYONG</property>
  <property name="hibernate.connection.username">mkyong</property>
  <property name="hibernate.connection.password">password</property>
  <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
  <property name="hibernate.default__schema">MKYONG</property>
  <property name="show__sql">true</property>
  <mapping resource="com/mkyong/user/DBUser.hbm.xml"></mapping>
</session-factory>
</hibernate-configuration>

7. Hibernateユーティリティ

古典的な “HibernateUtil.java`”クラスを作成して、Hibernateセッション管理を担当してください。 ”

src/main/java/com/mkyong/util/HibernateUtil.java

“の下に置きます。


File:HibernateUtil.java

package com.mkyong.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.最終プロジェクトの構造を見直す

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


プロジェクトフォルダ構造、タイトル= "maven-hibernate-oracle-folder-structure"、width = 566、height = 509

9.ハイバネートコーディング

テーブルを ”

DBUSER

“に保存するためにHibernateをコード化するために、 “App.java`”を更新してください。


File:App.java

package com.mkyong;

import java.util.Date;
import org.hibernate.Session;
import com.mkyong.util.HibernateUtil;
import com.mkyong.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ビューの結果、タイトル= "maven-hibernate-oracle-output"、width = 639、height = 191

完了しました。

ダウンロードする – リンク://wp-content/uploads/2011/04/Maven3-Hibernate3.6-Oracle11-Example.zip[Maven3-Hibernate3.6-Oracle11-Example.zip](8KB)