Maven3路程4:用Maven创建Hibernate项目|Java开发|码途山海.智隐长卷 -

程序人生|重庆纽新

找回密码
立即注册

QQ登录

只需一步,快速开始

欢迎访问【程序人生-重庆纽新】,本网站为软件开发人员视觉的IT资讯、软件开发中各种问题的解决办法!!
搜索
发新帖


2308

积分

0

好友

259

主题
楼主
发表于 2015-5-14 13:10:25 | 查看: 1292| 回复: 0
本文将用Maven3、Hibernate3.6、Oracle10g整合,作为例子。
环境清单:
1.Maven3.0.5
2.Hibernate3.6.5 Final
3.JDK1.7.0.11
4.Oracle10g
一.首先创建表BDUSER
  1. create table DBUSER
  2. (
  3.   user_id      NUMBER(5) not null,
  4.   username     VARCHAR2(20),
  5.   created_by   VARCHAR2(20),
  6.   created_date DATE
  7. )
复制代码


二.用Maven3创建一个web项目,项目名称:maven-hibernate-demo
创建项目参考:Maven3路程1:用Maven创建第一个web项目(1)
三.添加Hibernate和Oracle依赖,pom.xml如下
Hibernate有些依赖包必须添加
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  3.   <modelVersion>4.0.0</modelVersion>
  4.   <groupId>com.lei.demo</groupId>
  5.   <artifactId>maven-hibernate-demo</artifactId>
  6.   <packaging>war</packaging>
  7.   <version>0.0.1-SNAPSHOT</version>
  8.   <name>maven-hibernate-demo Maven Webapp</name>
  9.   <url>http://maven.apache.org</url>
  10.   <dependencies>
  11.     <dependency>
  12.       <groupId>junit</groupId>
  13.       <artifactId>junit</artifactId>
  14.       <version>4.8.2</version>
  15.       <scope>test</scope>
  16.     </dependency>
  17.     <!-- Oracle Jdbc Driver -->
  18.     <dependency>
  19.         <groupId>com.oracle</groupId>
  20.         <artifactId>ojdbc14</artifactId>
  21.         <version>10.2.0.4.0</version>
  22.     </dependency>
  23.     <!-- Hibernate 配置 -->
  24.     <dependency>
  25.         <groupId>org.hibernate</groupId>
  26.         <artifactId>hibernate-core</artifactId>
  27.         <version>3.6.5.Final</version>
  28.     </dependency>
  29.     <dependency>
  30.         <groupId>javassist</groupId>
  31.         <artifactId>javassist</artifactId>
  32.         <version>3.12.0.GA</version>
  33.     </dependency>
  34.     <dependency>
  35.         <groupId>antlr</groupId>
  36.         <artifactId>antlr</artifactId>
  37.         <version>2.7.6</version>
  38.     </dependency>
  39.     <dependency>
  40.         <groupId>commons-collections</groupId>
  41.         <artifactId>commons-collections</artifactId>
  42.         <version>3.1</version>
  43.     </dependency>
  44.     <dependency>
  45.         <groupId>dom4j</groupId>
  46.         <artifactId>dom4j</artifactId>
  47.         <version>1.6.1</version>
  48.     </dependency>
  49.     <dependency>
  50.         <groupId>javax.transaction</groupId>
  51.         <artifactId>jta</artifactId>
  52.         <version>1.1</version>
  53.     </dependency>
  54.     <dependency>
  55.         <groupId>org.slf4j</groupId>
  56.         <artifactId>slf4j-api</artifactId>
  57.         <version>1.6.1</version>
  58.     </dependency>
  59.     <dependency>
  60.         <groupId>org.hibernate.javax.persistence</groupId>
  61.         <artifactId>hibernate-jpa-2.0-api</artifactId>
  62.         <version>1.0.0.Final</version>
  63.     </dependency>
  64.   </dependencies>
  65.   <build>
  66.     <finalName>maven-hibernate-demo</finalName>
  67.   </build>
  68. </project>
复制代码


四.创建Hibernate Map文件和Model类
1.创建Dbuser.hbm.xml映射文件
路径src/main/resources/com/sulei/demo下

  1. <?xml version="1.0"?>
  2. <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
  3. "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
  4. <!-- Generated 2013-10-22 15:28:34 by Hibernate Tools 3.4.0.CR1 -->
  5. <hibernate-mapping>
  6.     <class name="com.sulei.demo.Dbuser" table="DBUSER" schema="GZIP_BASE">
  7.         <id name="userId" type="int">
  8.             <column name="USER_ID" precision="5" scale="0" />
  9.             <generator class="assigned" />
  10.         </id>
  11.         <property name="username" type="string">
  12.             <column name="USERNAME" length="20" />
  13.         </property>
  14.         <property name="createdBy" type="string">
  15.             <column name="CREATED_BY" length="20" />
  16.         </property>
  17.         <property name="createdDate" type="date">
  18.             <column name="CREATED_DATE" length="7" />
  19.         </property>
  20.     </class>
  21. </hibernate-mapping>
复制代码


2. 创建实体类Dbuser
路径src/main/java/com/sulei/demo下
  1. package com.sulei.demo;

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

  3. import java.util.Date;

  4. /**
  5. * Dbuser generated by hbm2java
  6. */
  7. public class Dbuser implements java.io.Serializable {

  8.     private int userId;
  9.     private String username;
  10.     private String createdBy;
  11.     private Date createdDate;

  12.     public Dbuser() {
  13.     }

  14.     public Dbuser(int userId) {
  15.         this.userId = userId;
  16.     }

  17.     public Dbuser(int userId, String username, String createdBy,
  18.             Date createdDate) {
  19.         this.userId = userId;
  20.         this.username = username;
  21.         this.createdBy = createdBy;
  22.         this.createdDate = createdDate;
  23.     }

  24.     public int getUserId() {
  25.         return this.userId;
  26.     }

  27.     public void setUserId(int userId) {
  28.         this.userId = userId;
  29.     }

  30.     public String getUsername() {
  31.         return this.username;
  32.     }

  33.     public void setUsername(String username) {
  34.         this.username = username;
  35.     }

  36.     public String getCreatedBy() {
  37.         return this.createdBy;
  38.     }

  39.     public void setCreatedBy(String createdBy) {
  40.         this.createdBy = createdBy;
  41.     }

  42.     public Date getCreatedDate() {
  43.         return this.createdDate;
  44.     }

  45.     public void setCreatedDate(Date createdDate) {
  46.         this.createdDate = createdDate;
  47.     }

  48. }
复制代码


可以用Hibernate Tools反向工程自动声场代码

五.创建Hibernate.cfg.xml
创建Hibernate配置文件 “hibernate.cfg.xml” 把他放在resources目录下: “src/main/resources/hibernate.cfg.xml“填写数据库相关信息。
加入Map文件,“DBUser.hbm.xml“.
hibernate.cfg.xml如下:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
  3.                                          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
  4. <hibernate-configuration>
  5. <session-factory name="">
  6.   <property name="hibernate.connection.driver_class">oracle.jdbc.OracleDriver</property>
  7.   <property name="hibernate.connection.password">password</property>
  8.   <property name="hibernate.connection.url">jdbc:oracle:thin:@databaseip:1521:gzip</property>
  9.   <property name="hibernate.connection.username">gzip_base</property>
  10.   <property name="hibernate.dialect">org.hibernate.dialect.Oracle10gDialect</property>
  11.   <property name="show_sql">true</property>
  12.   <mapping resource="com/sulei/demo/Dbuser.hbm.xml" />
  13. </session-factory>
  14. </hibernate-configuration>
复制代码


六.创建Session工场
创建 “HibernateUtil.java” 类管理Hibernate Session。 路径:“src/main/java/com/sulei/util/HibernateUtil.java”
  1. package com.sulei.util;

  2. import org.hibernate.SessionFactory;
  3. import org.hibernate.cfg.Configuration;

  4. public class HibernateUtil {
  5.    
  6.     private static final SessionFactory sessionFactory = buildSessionFactory();
  7.      
  8.     private static SessionFactory buildSessionFactory() {
  9.         try {
  10.             // Create the SessionFactory from hibernate.cfg.xml
  11.             return new Configuration().configure().buildSessionFactory();
  12.         } catch (Throwable ex) {
  13.             // Make sure you log the exception, as it might be swallowed
  14.             System.err.println("Initial SessionFactory creation failed." + ex);
  15.             throw new ExceptionInInitializerError(ex);
  16.         }
  17.     }

  18.     public static SessionFactory getSessionFactory() {
  19.      System.out.println("test----1");
  20.         return sessionFactory;
  21.     }

  22.     public static void shutdown() {
  23.         // Close caches and connection pools
  24.         getSessionFactory().close();
  25.     }

  26. }
复制代码

六. 代码测试
创建App.java向表中插入一条记录。
  1. package com.sulei.test;

  2. import java.util.Date;
  3. import org.hibernate.Session;
  4. import com.sulei.util.HibernateUtil;
  5. import com.sulei.demo.Dbuser;

  6. public class App {

  7.     public static void main(String[] args) {
  8.         System.out.println("Maven3 + Hibernate + Oracle10g");
  9.         Session session = HibernateUtil.getSessionFactory().openSession();

  10.         session.beginTransaction();
  11.         Dbuser user = new Dbuser();

  12.         user.setUserId(100);
  13.         user.setUsername("leioolei");
  14.         user.setCreatedBy("system");
  15.         user.setCreatedDate(new Date());

  16.         session.save(user);
  17.         session.getTransaction().commit();
  18.     }
  19. }
复制代码


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

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

测试成功!!!




copycode.gif (263 Bytes, 下载次数: 282)

copycode.gif

收藏回复 只看该作者 道具 举报

高级模式
B Color Image Link Quote Code Smilies



QQ|小黑屋| 码途山海.智隐长卷 渝ICP备15002301号-2   渝公网安备50011202504426

GMT+8, 2025-5-18 05:02 , Processed in 0.044772 second(s), 28 queries .

©Copyright 程序人生!

©2012-2015重庆纽新

快速回复 返回顶部 返回列表