猿教程 Logo

Hibernate入门实例:Maven 3 + Hibernate 3.6 + Oracle 11g Example (XML Mapping)

在本文中,我们将介绍如何将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.创建表

Oracle SQL脚本在数据库中创建一个“DBUSER”表。

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 repository”。

对于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. Hibernate映射文件(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;
}
}

6.Hibernate配置文件

创建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”下

文件: 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.Hibernate编码

更新“App.java”,以编写Hibernate来将一个虚拟用户记录保存到表“DBUSER”中。

文件: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控制台视图中看到输出:



版权声明:本站所有教程均为本站原创或翻译,转载请注明出处,请尊重他人劳动果实。请记住本站地址:www.yuanjiaocheng.net (猿教程) 作者:卿文刚
本文标题: C#环境
本文地址:http://www.yuanjiaocheng.net/Hibernate/steps-to-create-first-hibernate-application.html