Maven 3 + Hibernate 3.6 + Oracle 11g示例(XML映射)

在本文中,我们向您展示如何将Maven3Hibernate3.6Oracle11g集成在一起。 在本文的最后,您将使用Maven创建一个Java项目,并通过Hibernate框架将一条记录插入Oracle数据库。

本文使用的工具和技术:

  1. Maven的3.0.3
  2. JDK 1.6.0_13
  3. 休眠3.6.3。最终
  4. 甲骨文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

注意
更详细的信息,请参考如何使用Maven创建Java项目

3. Maven到Eclipse IDE

将生成的基于Maven的项目转换为Eclipse项目,然后将其导入到Eclipse IDE中。

mvn eclipse:eclipse

4.添加Hibernate和Oracle依赖关系

更新您的pom.xml文件,并添加所有相关的依赖项。

  1. 您需要为最新的Hibernate jar及其依赖项声明“ JBoss存储库”。
  2. 对于Oracle JDBC驱动程序,您需要将其手动安装到本地maven存储库中。

对于Oracle JDBC驱动程序
阅读本指南– 如何在Maven本地存储库中添加Oracle JDBC驱动程序

档案: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 ”下。

注意
如果该文件夹不存在,则创建它。

文件: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 / ”下

文件: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;
	}

}

注意
您可能有兴趣阅读这篇文章-Eclipse + Hibernate工具,以自动生成Hibernate映射文件

6.休眠配置文件

创建一个Hibernate配置文件“ hibernate.cfg.xml ”,并将其放在资源文件夹的根目录“ src / main / resources / hibernate.cfg.xml ”下,然后填写您的Oracle数据库详细信息。 并映射到上面的Hibernate映射文件–“ DBUser.hbm.xml ”。

档案: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.休眠实用程序

创建一个经典的“ 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.审查最终项目结构

对其进行检查,您的项目结构应如下所示:

project folder structure

9.休眠编码

更新“ 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控制台视图中查看输出:

Eclipse view result

做完了

下载它– Maven3-Hibernate3.6-Oracle11-Example.zip (8KB)

参考

  1. Hibernate 3.6文档

翻译自: https://mkyong.com/hibernate/maven-3-hibernate-3-6-oracle-11g-example-xml-mapping/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值