`
dianziermu
  • 浏览: 137394 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

eclipse开发J2EE项目系列(3)——Hibernate映射文件和数据库表互转

阅读更多

优缺点:

 

经过项目实践,  总结出先设计表的几个缺点:

Java代码 复制代码
  1. 1 .  各种不同数据库间类型与 Java 类型映射关系不同导致 E-R 设计的难度,  使得 o/r 的数据库可移植性大打折扣。  
  2.   
  3. 2 .   business 发生变化 需要修改 表结构时,  需要修改的地方有 表, 映射文件, 实体, E-R 图,  这些工作都非常繁琐且容易出错,  如果先设计 Entity Object,  不会存在上述问题.  
  4.   
  5. 3 .  非 OO 的设计思路可能会导致涉及到多表查询的复杂度增加. 

 

 

 

==========================

 

 

一、由映射文件生成对应的数据库

 

自动生成只适用于数据库的表,数据库没有的话,需要自已手工建立。

 

(方法一:启动服务器自动生成数据库表)

 

    此方法需要配置hibernate.cfg.xml 文件,在该文件中添加属性:

 

<property name="hbm2ddl.auto">create</property>

 

这种方式可以在启动web服务后首次调用Hibernate时自动建立数据库表,建立表后再把这个属性去掉,防止以后自动重新建立表,丢失数据。

 

 

(方法二:由java文件主函数生成数据库表)

 

 

    1、新建工程dianziHibernateBase。首先第一步,还是导入必备的jar包。

    Hibernate3.3.1 必备包:

 

antlr-2.7.6.jar

commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
javassist-3.4.GA.jar
jta-1.1.jar

 

 mysql3.1.11 驱动:

mysql-connector-java-3.1.11-bin.jar

 

    另外还有三个包是必备的,可以到findjar网站 搜索并下载,这个网站真的是很有用的一个工具网站

log4j-1.2.13.jar
slf4j-api-1.5.6.jar
slf4j-log4j12-1.5.6.jar

 

    其次是安装mysql5,我安装的是5.0.18,有关mysql的安装请查看《mysql5全新安装手册》

 

 

    2、拷贝所需文件

    从eclipse开发J2EE项目系列(2) 中拷贝如下文件,内容无需修改:

SuperAModel.java
SuperIModel.java
User.java
AutoExportDB.java
User.hbm.xml
hibernate.cfg.xml

 

目录结构如下图:

 

 

 

 

 

    其中"AutoExportDB.java"是工具类主函数,我们执行如下代码,就能轻松将User类导入数据库转变成数据库中的表。不过,前提是我们已经在MySQL中建立了一个名为"struts2"的数据库(根据配置文件hibernate.cfg.xml得来)。

 

    利用此方法,可以先进行Java类的设计,再自动生成配置文件和数据库表,这样做更符合OO的设计思想,但是如果遇到表与表之间关系复杂,可能就不是很适合了。实际项目开发中,多应用由数据库表生成Hibernate实体类和配置文件。

 


/**
 * 
 */
package com.dianzi.util;

import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.hibernate.tool.hbm2ddl.SchemaExport;

/**
 * 生成数据库表
 * 
 * @author 点子二木
 * @date 2009-1-7
 * @version 1.0
 */
public class AutoExportDB {
	static Session session;

	static Configuration config = null;
	static Transaction tx = null;

	/**
	 * 运行此类,通过POJO类和配置文件,创建数据库结构
	 * 
	 * @param args
	 */
	public static void main(String[] args) {
		System.out.println("开始自动创建数据库结构...");
		try {
			config = new Configuration().configure();

			SessionFactory sessionFactory = config.buildSessionFactory();
			session = sessionFactory.openSession();
			tx = session.beginTransaction();

			SchemaExport schemaExport = new SchemaExport(config);
			schemaExport.create(true, true);

			tx.commit();
			System.out.println("数据库结构创建成功...");
		} catch (HibernateException e) {
			e.printStackTrace();
			System.out.println("数据库结构创建失败...");
			try {
				tx.rollback();
			} catch (HibernateException e1) {
				e1.printStackTrace();
			}
		} catch (Exception e) {
			e.printStackTrace();
			System.out.println("数据库结构创建失败...");
			try {
				tx.rollback();
			} catch (HibernateException e1) {
				e1.printStackTrace();
			}
		} finally {
			System.out.println("结束...");
		}
	}
}

 

 

二、由数据库表生成Hibernate实体类和配置文件   (本部分尚未学习清楚,以后再补充)

 

(方法一:Myeclipse中集成了此工具)

由于不免费,且工具非常简单易用,故不详细说明。

 

(方法二:)

Hibernate Tools for Eclipse插件的安装和使用

http://blog.chinaunix.net/u1/45779/showart_1409209.html

 

 

(方法三:)

Hibernate Synchronizer

分享到:
评论

相关推荐

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和...

    《程序天下:J2EE整合详解与典型案例》光盘源码

    12.5 使用Hibernate的工具快速生成映射文件和POJO 12.5.1 使用MiddleGen根据数据库产生映射文件 12.5.2 使用hbm2java根据映射文件产生POJO 12.6 整合Struts、Spring和Hibernate实现用户管理 12.6.1 Struts、Spring和...

    轻量级J2EE企业应用实战Struts+Spring+Hibernate整合开发

    第二部分详细讲解了Struts 2.1、Spring 2.5和Hibernate 3.2三个框架用法,介绍三个框架时,通过Eclipse IDE的使用来上手,一步步带领读者深入三个框架的核心.第三部分示范开发了一个包含7个表,表之间具有复杂的关联...

    Eclipse Hibernate插件

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端...

    轻量级Java EE企业应用实战——Struts 2+Spring+Hibernate整合开发chap2

    第三部分示范开发了一个包含7个表,表之间具有复杂的关联映射、继承映射等关系,且业务也相对复杂的工作流案例,让读者理论联系实际,将三个框架真正运用到实际开发中去。该案例采用目前最流行、最规范的Java EE架构...

    夏昕.深入浅出Hibernate

    本书从持久层入手,引出对象/关系数据库映射的由来,接下来聚焦于目前最完善、最强悍的ORM产品—— Hibernate。从一个基础程序入手,讲述Hibernate的基本语法与配置,慢慢升高到缓存、延迟加载等高级特性。本书内容...

    从J2SE到J2EE知识点介绍

    2. Java时间和日期类型的Hibernate映射类型 224 3. Java大对象类型的Hibernate映射类型 225 4. 关联关系映射 225 5. Hibernate的事务与并发 238 (十) 数据库 240 1. 数据库的基本概念 240 2. 数据模型 240 3. 关系...

    孙卫情hibernate

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端...

    支持多数据库的ORM框架ef-orm.zip

    表结构元数据的API也向用户开放,同时支持在使用过程中,灵活调整映射关系,因此用户可以用API动态的创建表结构的模型,从而实现各种动态类型和表的映射(例如POJO中包含一个Map,用于映射各种动态扩展的字段)企业...

    经典JAVA.EE企业应用实战.基于WEBLOGIC_JBOSS的JSF_EJB3_JPA整合开发.pdf

    第1章 经典Java EE应用和开发环境 9 1.1 经典Java EE应用概述 10 1.1.1 Java EE 6相关规范 10 1.1.2 经典Java EE应用的分层模型 11 1.1.3 经典Java EE应用的组件 13 1.1.4 经典Java EE应用架构的优势 13 1.1.5 常用...

    JAVA上百实例源码以及开源项目源代码

    2个目标文件,FTP的目标是:(1)提高文件的共享性(计算机程序和/或数据),(2)鼓励间接地(通过程序)使用远程计算机,(3)保护用户因主机之间的文件存储系统导致的变化,(4)为了可靠和高效地传输,虽然用户...

    基于JSP的儿童健康保健系统毕业设计论文

    本设计就是基于J2EE 体系结构下的WEB 开发,设计的目的是了解J2EE体系的多层结构以及其两大容器WEB容器和EJB容器,重点掌握WEB技术、Struts和Hibernate技术、熟悉其开发环境的构建和工具的使用。在开发中使用了目前...

Global site tag (gtag.js) - Google Analytics