本文将用Maven3、Hibernate3.6、Oracle10g整合,作为例子。

环境清单:

1.Maven3.0.5

2.Hibernate3.6.5 Final

3.JDK1.7.0.11

4.Oracle10g

一.首先创建表BDUSER

create table DBUSER
(
user_id NUMBER(5) not null,
username VARCHAR2(20),
created_by VARCHAR2(20),
created_date DATE
)

二.用Maven3创建一个web项目,项目名称:maven-hibernate-demo

创建项目参考:Maven3路程(三)用Maven创建第一个web项目(1)

三.添加Hibernate和Oracle依赖,pom.xml如下

Hibernate有些依赖包必须添加

<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.lei.demo</groupId>
<artifactId>maven-hibernate-demo</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>maven-hibernate-demo Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<scope>test</scope>
</dependency>
<!-- Oracle Jdbc Driver -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version>
</dependency>
<!-- Hibernate 配置 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>3.6.5.Final</version>
</dependency>
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.0.GA</version>
</dependency>
<dependency>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
<version>2.7.6</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>javax.transaction</groupId>
<artifactId>jta</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.hibernate.javax.persistence</groupId>
<artifactId>hibernate-jpa-2.0-api</artifactId>
<version>1.0.0.Final</version>
</dependency>
</dependencies>
<build>
<finalName>maven-hibernate-demo</finalName>
</build>
</project>

四.创建Hibernate Map文件和Model类

1.创建Dbuser.hbm.xml映射文件

路径src/main/resources/com/sulei/demo下

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 2013-10-22 15:28:34 by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="com.sulei.demo.Dbuser" table="DBUSER" schema="GZIP_BASE">
<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" />
</property>
<property name="createdBy" type="string">
<column name="CREATED_BY" length="20" />
</property>
<property name="createdDate" type="date">
<column name="CREATED_DATE" length="7" />
</property>
</class>
</hibernate-mapping>

2. 创建实体类Dbuser

路径src/main/java/com/sulei/demo下

package com.sulei.demo;

// Generated 2013-10-22 15:28:34 by Hibernate Tools 3.4.0.CR1

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) {
this.userId = userId;
} 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;
} }

可以用Hibernate Tools反向工程自动声场代码,见以下另一篇文章:

用Hibernate Tools生成Hibernate Mapping映射文件

五.创建Hibernate.cfg.xml

创建Hibernate配置文件 “hibernate.cfg.xml” 把他放在resources目录下: “src/main/resources/hibernate.cfg.xml“填写数据库相关信息。

加入Map文件,“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 name="">
<property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.connection.url">jdbc:oracle:thin:@databaseip:1521:gzip</property>
<property name="hibernate.connection.username">gzip_base</property>
<property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
<property name="show_sql">true</property>
<mapping resource="com/sulei/demo/Dbuser.hbm.xml" />
</session-factory>
</hibernate-configuration>

 六.创建Session工场

创建 “HibernateUtil.java” 类管理Hibernate Session。 路径:“src/main/java/com/sulei/util/HibernateUtil.java”

package com.sulei.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() {
     System.out.println("test----1");
return sessionFactory;
} public static void shutdown() {
// Close caches and connection pools
getSessionFactory().close();
} }

六. 代码测试

创建App.java向表中插入一条记录。

package com.sulei.test;

import java.util.Date;
import org.hibernate.Session;
import com.sulei.util.HibernateUtil;
import com.sulei.demo.Dbuser; public class App { public static void main(String[] args) {
System.out.println("Maven3 + Hibernate + Oracle10g");
Session session = HibernateUtil.getSessionFactory().openSession(); session.beginTransaction();
Dbuser user = new Dbuser(); user.setUserId(100);
user.setUsername("leioolei");
user.setCreatedBy("system");
user.setCreatedDate(new Date()); session.save(user);
session.getTransaction().commit();
}
}

项目组织好,目录结构见下图

在App.java上右键运行,结果如图

测试成功!!!

Maven3路程(五)用Maven创建Hibernate项目的更多相关文章

  1. Intellij Idea 用Maven 创建Hibernate 项目

    第一步:创建maven项目 2. 3. 4.第三步保存之后进行下一步 到此点击finish maven项目创建成功,点击完成后会进行一系列jar包的下载 maven 仓库的默认存储位置 第二步:连接数 ...

  2. Rhythmk 学习 Hibernate 01 - maven 创建Hibernate 项目之 增删改查入门

    1.环境: Maven :3.1.1 开发工具:Spring Tool Suite 数据库 : Mysql  5.6 2.项目文件结构 文件代码: 2.1 .pom.xml <project x ...

  3. 用maven创建web项目(spring Mvc)

    用maven创建web项目(spring Mvc) 1.打开cmd进入到你要创建maven项目的目录下: 2.输入以下命令.然后根据提示输入相应的groupId.artifactId.version: ...

  4. maven 学习---使用Maven创建Java项目

    在本教程中,我们将向你展示如何使用 Maven 来创建一个 Java 项目,导入其到Eclipse IDE,并打包 Java 项目到一个 JAR 文件. 所需要的工具: Maven 3.3.3 Ecl ...

  5. Eclipse+Maven创建webapp项目<一>(转)

    还在为jar下载而烦恼吗?还在为jar依赖关系而烦恼吗?还在为jar冲突而烦恼吗?强大的maven项目管理工具来拯救你们呢?自动下载jar,自动下载jar依赖包.你什么都不用做,只需要在中央仓库中co ...

  6. 【maven】maven创建web项目-pom文件提示web.xml is missing and <failOnMissingWebXml> is set to true

    使用maven创建web项目,选择war类型后,pom文件红叉 提示web.xml is missing and <failOnMissingWebXml> is set to true ...

  7. Eclipse+Maven创建webapp项目

    Eclipse+Maven创建webapp项目<一> 1.开启eclipse,右键new-->other,如下图找到maven project 2.选择maven project,显 ...

  8. Eclipse+Maven创建webapp项目<一>

    Eclipse+Maven创建webapp项目<一> 1.开启eclipse,右键new——>other,如下图找到maven project 2.选择maven project,显 ...

  9. Maven创建servlet项目演示(三)

    上一节用Maven新建了web项目成功后,本文演示在此基础上应用servlet. 从对tomcat服务器进行配置可的过程中可以知道,tomcat作为servlet容器运行,负责处理客户请求,把请求传送 ...

随机推荐

  1. NYOJ-58 最小步数 AC 分类: NYOJ 2014-01-22 22:01 217人阅读 评论(0) 收藏

    #include<stdio.h> void dfs(int step,int x,int y); int d[4][2] = {{1,0},{-1,0},{0,1},{0,-1}}; i ...

  2. Windows10+IIS7.5上如何配置PHP站点

    最近我一直在写PHP,但是我很喜欢微软的开发环境和Windows的硬件环境,我就想在IIS上配置一下PHP站点,这样用起来也比较方便,在经过各位前辈的文章学习后,自己整理了一个比较简单的图片为主的教程 ...

  3. Sqli-labs less 53

    Less-53 和less51是一样的,只是这里的mysql错误不会在前台显示,但是对于stacked injection是一样的利用方式 http://127.0.0.1/sqli-labs/Les ...

  4. WIN7设置wifi热点的方法

    1.以管理员身份运行命令提示符:快捷键win+R→输入cmd→回车2.启用并设定虚拟WiFi网卡:运行命令:netsh wlan set hostednetwork mode=allow ssid=m ...

  5. close和shutdown的区别

    转的,没验证 close(sock_fd)会把sock_fd的内部计数器减1当sock_fd的内部计数器为0时, 才调用shutodwn(), 并最终释放文件描述符调用shutdown()只是进行了T ...

  6. Python Tricks 若干

    赵斌 - APRIL 29, 2015 在 python 代码中可以看到一些常见的 trick,在这里做一个简单的小结. json 字符串格式化 在开发 web 应用的时候经常会用到 json 字符串 ...

  7. LA 2031

    Mr. White, a fat man, now is crazy about a game named ``Dance, Dance, Revolution". But his danc ...

  8. POJ 3320

    Jessica's Reading Problem Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6496   Accept ...

  9. POJ 2992 Divisors (求因子个数)

    题意:给n和k,求组合C(n,k)的因子个数. 这道题,若一开始先预处理出C[i][j]的大小,再按普通方法枚举2~sqrt(C[i][j])来求解对应的因子个数,会TLE.所以得用别的方法. 在说方 ...

  10. poj 2975 Nim 博弈论

    令ans=a1^a2^...^an,如果需要构造出异或值为0的数, 而且由于只能操作一堆石子,所以对于某堆石子ai,现在对于ans^ai,就是除了ai以外其他的石子 的异或值,如果ans^ai< ...