`

hibernate3.2开篇

阅读更多

准备工作:下载hibernate-3.2.0.ga.zip压缩包.

 

1、介绍hibernate-3.2包结构.

Doc:存放各种帮助文档。

Eg:存放一些用hibernate实现的小例子。

Etc:存放配置文件的案例。

Grammar:语法

Lib:存放第三方的依赖包。

SrcHibernate3.jar所有源代码

Test:存放对每一个类的测试程序。

Hibernate3.jarHibernate核心Jar包。 

 

2、创建Java项目

3、创建User Library,加入依赖包

    操作步骤:windowàPreferencesàJavaàBuild PathàUser Libraries,新建一个Library后,分别Add JARs…如下JAR包。

* HIBERNATE_HOME/lib/*.jar

         * HIBERNATE_HOME/hibernate3.jar

         * 加入数据库驱动Jar

4、提供hibernate.cfg.xml文件,完成基本的配置

   在HIBERNATE_HOME/etc中找到hibernate.cfg.xml文件,拷贝到工程的src的根目录下。完成如下配置(关键配置文件中键值对该如何书写,可以参考log4j.properties文件):

<!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.dialect">org.hibernate.dialect.OracleDialect</property>
		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="hibernate.connection.username">HIBERNATETEST</property>
		<property name="hibernate.connection.password">HIBERNATETEST</property>
		<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
	</session-factory>
</hibernate-configuration>

 

5、建立实体类User.java

package com.ysj;

import java.util.Date;

public class User {
	// 用户名主键
	private String id ;
	// 姓名
	private String name ;
	// 密码
	private String password ;
	// 创建时间
	private Date createTime ;
	// 失效时间
	private Date expireTime ;
	
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public Date getCreateTime() {
		return createTime;
	}
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	public Date getExpireTime() {
		return expireTime;
	}
	public void setExpireTime(Date expireTime) {
		this.expireTime = expireTime;
	}
}

 

6、提供User.hbm.xml文件,完成实体类的映射

     在HIBERNATE_HOME/eg\org\hibernate\auction中找到User.hbm.xml文件,拷贝到工程的User.java所在目录下。完成如下配置:

<?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>
        <!-- name属性是类的全路径, table属性是对应数据库的表名 -->
	<class name="com.ysj.User" table="t_user">
	    <!-- 配置主键 -->
		<id name="id">
		    <!-- 主键的生成策略,32位的字符串 -->
			<generator class="uuid"/>
		</id>
		<!-- 配置其他属性 -->
		<property name="name"/>
		<property name="password"/>
		<property name="createTime"/>
		<property name="expireTime"/>
	</class>
</hibernate-mapping>

将User.hbm.xml文件加入到hibernate.cfg.xml;修改hibernate.cfg.xml配置文件,修改后的效果如下: 

<!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.dialect">org.hibernate.dialect.OracleDialect</property>
		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="hibernate.connection.username">HIBERNATETEST</property>
		<property name="hibernate.connection.password">HIBERNATETEST</property>
		<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
		<!-- 配置关系映射 -->
		<mapping resource="com/ysj/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

 

7、编写工具类ExportDB.java,将hbm生成ddl,也就是hbm2ddl(hibernate映射文件生成数据库的DDL)

     ExportDB.java代码如下(创建数据表t_user):

package com.ysj;

import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

public class ExportDB {

	/**
	 * 通过hbm生成DDL
	 * @param args
	 */
	public static void main(String[] args) {
		/**
		 * Configuration cfg = new Configuration();  // 默认读取的是根目录下hibernate.properties配置文件.
		 * Configuration cfg = new Configuration().configure() ;  // 默认读取的是根目录下hibernate.cfg.xml配置文件.
		 */
		Configuration cfg = new Configuration().configure() ; 
		/**
		 * 根据给定的配置文件生成相应模式类(用于生成数据表)
		 */
		SchemaExport export = new SchemaExport(cfg) ;
		/**
		 * 参数1 : 是否在控制台中输出建表语句
		 * 参数2 : 是否把建表语句导出到数据库中
		 */
		export.create(true, true);

	}

}

 

8、建立客户端类Client,添加用户数据到数据库

     Client.java代码如下:

package com.ysj;

import java.util.Date;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class Client {

	/**
	 * 往数据库中插入User对象
	 * @param args
	 */
	public static void main(String[] args) {
		// 读取hibernate.cfg.xml配置文件
		Configuration cfg = new Configuration().configure() ;
		// 创建SessionFactory(相当于数据库镜像,最好只创建一个)
		SessionFactory factory = cfg.buildSessionFactory() ;
		
		Session session = null ;
		try{
			// 取得Session(持久化管理器,该对象可以完成增删改查)
			session = factory.openSession() ;
			// 开启事务(自己手动开启事务)
			session.beginTransaction() ;
			User user = new User() ;
			user.setName("Test") ;
			user.setPassword("123") ;
			user.setCreateTime(new Date()) ;
			user.setExpireTime(new Date()) ;
			// 保存User对象
			session.save(user) ;
			// 提交事务
			session.getTransaction().commit() ;
		}catch(Exception e){
			e.printStackTrace() ;
			// 回滚事务
			session.getTransaction().rollback() ;
		}finally{
			// 关闭session
			if(session != null){
				if(session.isOpen()){
					session.close() ;
					session = null ;
				}
			}
		}
	}
}

 

 

最好在hibernate.cfg.xml中加入如下配置项,方便观察hibernate sql的生成:

	<property name="hibernate.show_sql">true</property>
	<property name="hibernate.format_sql">true</property>

修改后的 hibernate.cfg.xml 文件如下:

<!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.dialect">org.hibernate.dialect.OracleDialect</property>
		<property name="hibernate.connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
		<property name="hibernate.connection.username">HIBERNATETEST</property>
		<property name="hibernate.connection.password">HIBERNATETEST</property>
		<property name="hibernate.connection.url">jdbc:oracle:thin:@localhost:1521:orcl</property>
		<!-- 是否在控制台输出全部SQL语句 -->
		<property name="hibernate.show_sql">true</property>
		<!-- 是否在控制台输出全部SQL语句,并且对SQL语句进行格式化 -->
		<property name="hibernate.format_sql">true</property>
		<!-- 配置关系映射 -->
		<mapping resource="com/ysj/User.hbm.xml"/>
	</session-factory>
</hibernate-configuration>

 

最好加入log4j配置文件,将该配置文件拷贝到src下,便于程序的调试

HIBERNATE_HOME/etc中找到log4j.properties文件,拷贝到工程的src的根目录下。使用默认的文件就可以,如果不想看到info和debug信息,可以在log4j.properties文件中把info和debug的信息注释掉。

 

附件中存放的是用MyEclipse6.0的File System导出的练习工程,有需要的可以直接下载解压导入进行测试.

 

 

 

 

  • 大小: 30.9 KB
0
1
分享到:
评论

相关推荐

    struts1.2 + spring2.5 + hibernate3.2框架demo

    Struts1.2、Spring2.5和Hibernate3.2是经典的Java企业级开发框架组合,它们各自在应用程序的不同层次上发挥着重要作用。Struts1.2是一个MVC(Model-View-Controller)框架,主要负责处理用户界面与业务逻辑之间的...

    Hibernate3.2jar包

    Hibernate3.2是一款广泛应用于Java开发中的开源对象关系映射(ORM)框架,它极大地简化了数据库操作,使得开发者能够用面向对象的方式处理数据。这个jar包是Hibernate3.2版本的核心组件,包含了所有必要的类库,使得...

    hibernate3.2lib及源码jar包纯净版

    **hibernate3.2lib及源码jar包纯净版** Hibernate是一个开源的Java平台上的对象关系映射(ORM)框架,它允许开发者将数据库操作转换为对Java对象的操作,从而简化了数据库应用的开发。这个标题指的是一个针对...

    some simple demo about hibernate3.2 and spring2.5

    标题 "some simple demo about hibernate3.2 and spring2.5" 暗示这是一个关于如何集成和使用 Hibernate 3.2 和 Spring 2.5 的简单演示项目。这两个库在Java开发中扮演着重要角色,Hibernate是流行的对象关系映射...

    Hibernate3.2整套源码

    本资源包含的是Hibernate 3.2版本的完整源代码,这个版本在当时是相当稳定且广泛使用的。 在深入探讨Hibernate 3.2的源码之前,我们需要理解ORM的基本概念。ORM将数据库中的表映射为Java对象,通过对象之间的关系来...

    hibernate3.2

    Hibernate 3.2 是一个非常重要的Java持久化框架版本,它极大地简化了数据库与Java对象之间的交互,使得开发者能够更加专注于业务逻辑而不是繁琐的数据访问层实现。本篇将深入探讨Hibernate 3.2的主要特性、核心概念...

    hibernate3.2 jar包

    Hibernate 3.2 是一个非常重要的Java持久化框架,它为开发者提供了强大的对象关系映射(ORM)功能,使得在Java应用中操作数据库变得更加简单。这个核心jar包包含了实现Hibernate功能所需的所有基本类和接口,是开发...

    开发框架 hibernate3.2

    **开发框架 Hibernate 3.2 知识点详解** Hibernate 是一个广泛使用的开源对象关系映射(ORM)框架,它的核心目标是简化Java应用程序与数据库之间的交互。在Hibernate 3.2版本中,这个框架提供了丰富的功能和改进,...

    Hibernate3.2官方中文参考手册 高清晰 pdf

    ### Hibernate 3.2 官方中文参考手册关键知识点概览 #### 一、简介 Hibernate 是一个开源的对象关系映射(ORM)框架,用于 Java 应用程序中的数据库交互。它提供了一种将 Java 对象映射到数据库表的方式,并简化了...

    Hibernate高官谈Hibernate3.2新特性.html

    Hibernate高官谈Hibernate3.2新特性

    hibernate3.2-api

    hibernate3.2的chm格式api手册。

    Hibernate3.2官方中文参考手册.pdf+Hibernate.pdf(Hibernate的学习资料)

    Hibernate3.2是其发展中的一个重要版本,提供了许多改进和新特性。 在《Hibernate3.2官方中文参考手册》中,我们可以深入学习到以下关键知识点: 1. **对象关系映射(ORM)基础**:ORM的核心思想是将数据库中的...

    struts2+spring2.5+hibernate3.2整合完整项目,带数据库脚本

    Struts2、Spring2.5和Hibernate3.2是Java Web开发中经典的三大框架,它们的整合使用在过去的许多年里被广泛应用于企业级应用系统。这个完整的项目提供了从开发环境到运行环境的所有必要组件,包括数据库脚本,使得...

    hibernate 3.2卷二

    hibernate 3.2 hibernate 3.2 hibernate 3.2 hibernate 3.2 hibernate 3.2

    hibernate3.2 需要的hibernate3.2以及所有文件

    Hibernate 3.2 是一个流行的Java对象关系映射(ORM)框架,它允许开发者使用面向对象的编程方式来操作数据库,极大地简化了数据库操作。在这个压缩包中,包含的文件是完整支持Hibernate 3.2版本运行所需的所有组件,...

    Hibernate 3.2 中文参考手册

    Hibernate 3.2 中文参考手册 博文链接:https://luxiangdong.iteye.com/blog/214583

    hibernate3.2用到的jar包

    在Hibernate 3.2版本中,它提供了许多改进和增强的功能,包括性能优化、对JPA(Java Persistence API)的支持以及对最新数据库版本的兼容性。 以下是一些关于Hibernate 3.2中关键知识点的详细解释: 1. **对象关系...

    整合struts2.1和hibernate3.2的JAR包

    下面将详细阐述如何整合Struts2.1与Hibernate3.2,以及涉及的相关知识点。 首先,了解Struts2.1:这是一个基于ApacheJakarta Struts的下一代MVC框架。它提供了一种模型驱动的方法来开发Web应用程序,允许开发者使用...

Global site tag (gtag.js) - Google Analytics