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
“テーブルを作成する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`ファイルを更新し、関連するすべての依存関係を追加してください。
-
あなたは最新のHibernate jarファイルのために “JBossリポジトリ”と宣言する必要があります.
その依存関係。
-
Oracle JDBCドライバの場合、ローカルのMavenにインストールする必要があります
手動でリポジトリ
-
Oracle JDBCドライバの場合** このガイドを読む –
MavenローカルリポジトリにOracle JDBCドライバを追加する方法
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.最終プロジェクトの構造を見直す
これを確認すると、プロジェクトの構造は次のようになります。
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コンソールビューで出力を確認してください:
完了しました。
ダウンロードする – リンク://wp-content/uploads/2011/04/Maven3-Hibernate3.6-Oracle11-Example.zip[Maven3-Hibernate3.6-Oracle11-Example.zip](8KB)
リファレンス
3.6ドキュメント]