• Maven3路程(五)用Maven创建Hibernate项目



    Maven3路程(五)用Maven创建Hibernate项目

    本文将用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上右键运行,结果如图

    测试成功!!!

    分类: Hibernate, Maven3
  • 相关阅读:
    数据共享之死锁
    响应式菜单制作
    工作日志2014-07-01
    Thinkphp 无法使用-&gt;order() 排序的两种解决的方法!
    C#
    HDU1232 畅通project 并查集
    Cocos2d-x优化中图片优化
    1.3.4 设计并发友好的应用程序
    UIView的层介绍
    《鸟哥的Linux私房菜-基础学习篇(第三版)》(三)
  • 原文地址:https://www.cnblogs.com/ios9/p/13066716.html
Copyright © 2020-2023  润新知