本文将用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路程1:用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.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上右键运行,结果如图
测试成功!!!
|