在本文中,我们向您展示如何将Maven3 , Hibernate3.6和Oracle11g集成在一起。 在本文的最后,您将使用Maven创建一个Java项目,并通过Hibernate框架将一条记录插入Oracle数据库。
本文使用的工具和技术:
- Maven的3.0.3
- JDK 1.6.0_13
- 休眠3.6.3。最终
- 甲骨文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
文件,并添加所有相关的依赖项。
- 您需要为最新的Hibernate jar及其依赖项声明“ JBoss存储库”。
- 对于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.审查最终项目结构
对其进行检查,您的项目结构应如下所示:
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控制台视图中查看输出:
做完了
下载它– Maven3-Hibernate3.6-Oracle11-Example.zip (8KB)
参考
翻译自: https://mkyong.com/hibernate/maven-3-hibernate-3-6-oracle-11g-example-xml-mapping/