利用Hibernate配置文件生成数据库
转载自:http://tzylwl.iteye.com/blog/1153626
目前很多人使用Hibernate作为持久层,如果我们已经写了配置文件poweracl.hbm.xml,则不必再费劲写SQL的DDL。除了利用工具 SchemaExport之外,还可以编写程序来自动初始化数据库,并且生成SQL DDL。
1.Hibernate配置 文件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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<!--让hb在运行时显示实际执行的sql语句 -->
<property name="show_sql">true</property>
<!-- 使显示的sql格式化-->
<property name="format_sql">true</property>
<property name="connection.username">root</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibtest</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.password">netjava</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<!-- 指明user这个pojo类的映射文件的路径 -->
<mapping resource="com/hibtest/poweracl.hbm.xml" />
</session-factory>
</hibernate-configuration>注意:(1)JDBC驱动为com.mysql.jdbc.Driver,可以根据所使用的库而更换。
(2)dialect 为数据库方言,根据所使用数据库不同而不同。这里是Mysql。
(3)jdbc.fetch_size和 jdbc.batch_size过小会降低性能,这里是建议设置。
(4)mapping文件根据文件所在路径而不同。这里是 放在WEB-INF/classes/com/hibtest/目录下。
2.数据库映射配置poweracl.hbm.xml
(2)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.hibtest.user" table="user" discriminator-value="W">
<id name="loginname" type="string">
<column name="loginname" sql-type="char(16)" not-null="true"></column>
<generator class="assigned"></generator>
</id>
<property name="password" type="string">
<column name="password" sql-type="varchar(20)"></column>
</property>
<property name="name" type="string">
<column name="name" sql-type="varchar(20)"></column>
</property>
<property name="email" type="string">
<column name="eamil" sql-type="varchar(60)"></column>
</property>
<property name="modified" type="date">
<column name="modifier"></column>
</property>
<property name="creater" type="date">
<column name="creater"></column>
</property>
<property name="lastlogin" type="date">
<column name="lastlogin"></column>
</property>
</class>
</hibernate-mapping>
说明:具体的poweracl.hbm.xml要根据数据库表而设置,这里只是列举一个user表。
3.初始化数据库类
package com.hibtest;
import java.io.File;
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;
/**//**
* <p/> vedadou
* Date: 2004-02-25
* Time: 9:40:15
*/
public class InitDB {
static Session session;
public static void main(String[] args){
Configuration config = null;
Transaction tx = null;
try {
//生成表时,不需要启动服务器,不过需要先把数据库实例建好
config = new Configuration().configure(new File("E:/javaWeb2/yiwu/WebRoot/WEB-INF/hibernate.cfg.xml"));
System.out.println("Creating tables...");
SchemaExport schemaExport = new SchemaExport(config);
schemaExport.create(true, true);
System.out.println("Table created.");
SessionFactory sessionFactory = config.buildSessionFactory();
session = sessionFactory.openSession();
tx = session.beginTransaction();
tx.commit();
} catch (HibernateException e){
e.printStackTrace();
try {
tx.rollback();
} catch (HibernateException e1) {
e1.printStackTrace();
}
} finally {
}
}
}
分享到:
相关推荐
Eclipse数据库hibernate反向生成数据库类 在本篇文章中,我们将详细介绍如何使用Eclipse中的Hibernate插件反向生成数据库实体类。首先,我们需要安装Hibernate Tools,下载地址为...
在提供的"WebRoot/info"文件夹中的"Hibernate反向生成数据库表.doc"文档,应该详细介绍了以上操作流程,建议仔细阅读以掌握具体步骤。如果你在使用过程中遇到任何问题,可以参考Hibernate的官方文档或在线社区寻求...
本篇文章将详细讲解如何使用Hibernate通过配置文件反向生成数据库的所有配置文件,以及涉及的相关步骤和技术要点。 首先,Hibernate的反向工程(Reverse Engineering)功能可以帮助开发者从现有的数据库中生成实体...
"hibernate反向生成数据库程序"是指通过Hibernate框架,从已有的数据库结构生成对应的Java实体类和映射文件,这样可以简化数据库与Java对象之间的交互。下面将详细介绍这个过程以及提供的代码片段。 首先,我们需要...
"根据Hibernate反向生成数据库的Java代码"这一主题涉及到的主要知识点包括Hibernate的逆向工程、实体类生成、数据库元数据以及Java持久化接口。 1. Hibernate逆向工程: Hibernate的逆向工程工具,也被称为...
利用hibernate的逆向工程生成数据库表
《使用Hibernate反向生成数据库表》 在Java后端开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库操作。利用Hibernate,开发者可以将Java类与数据库表进行映射,使得数据库操作更加面向对象。...
现在你可以使用Hibernate Tools反向生成POJO类了: 1. 在Eclipse的Package Explorer或Project Explorer中,右键点击你想生成POJO类的包名,选择“New” > “Other…”。 2. 在弹出的对话框中,展开“Hibernate”...
综上所述,Hibernate自动生成数据库文件涉及到ORM设计、Hibernate Tools的使用、配置文件的编写、Java注解的理解以及数据库操作的最佳实践等多个方面。掌握这些知识点有助于高效地利用Hibernate进行数据库开发。
MyEclipse与Hibernate反向生成实体类和DAO MyEclipse是一个基于Eclipse平台的集成开发环境(IDE),它提供了很多实用的功能和插件来帮助开发者快速开发Java应用程序。Hibernate是一个流行的对象关系映射(ORM)框架...
### Eclipse Hibernate 反向生成带注解的实体类——步骤详解 #### 一、创建数据库管理器 在开始之前,我们需要确保已经安装了Eclipse IDE,并且具备基本的数据库操作能力。下面详细介绍如何在Eclipse中创建数据库...
在实际开发过程中,为了提高效率,往往会利用工具来帮助我们自动生成一部分代码,比如通过 Hibernate 工具来进行反向生成。 #### 二、Hibernate Tools 插件安装 在 Eclipse 中使用 Hibernate 的反向生成功能之前,...
在Eclipse中实现数据库反向生成Hibernate实体类的过程主要包括数据源配置与实体类生成两大步骤。 ##### 1. 数据源配置 **第一步**:首先需要打开Eclipse中的数据连接配置界面。可以通过Eclipse的菜单栏进行操作:...
【Middlegen】是Hibernate的一款元数据生成工具,它能够自动生成Hibernate的配置文件,包括.hbm.xml映射文件和Java持久化类。Middlegen通过反向工程从现有的数据库模式创建这些文件,大大简化了开发者的工作,减少了...
【hibernate反向生成实体类及CRUD操作教学视频】是针对Java开发中的一个重要框架——Hibernate进行深入学习的资源。Hibernate是一个强大的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作,通过将Java...
7. **实体类映射**:通过Hibernate反向工程(Hibernate Reverse Engineering),可以将数据库表转换为Java实体类。选择表,指定生成的类路径和包名,以及数据访问对象(DAO)和持久化对象(POJO)。 8. **ID生成器*...
3. **启动反向工程向导**: 通过MyEclipse的菜单或快捷方式启动Hibernate反向工程向导。 4. **配置映射选项**: 在向导中选择要映射的表,配置实体类生成的位置以及映射文件的命名规则等。 5. **执行反向工程**: 完成...
本文将详细介绍如何利用MyEclipse进行Hibernate反向工程生成实体类的步骤。 #### 二、准备工作 在开始进行Hibernate反向工程之前,我们需要确保已经具备以下条件: 1. **Java开发环境**:包括JDK安装与配置。 2. ...
在给定的场景下,我们讨论的是如何使用Hibernate反向工程生成包含EJB注解的实体类。 首先,我们需要创建一个Web项目,这是构建基于Java的Web应用程序的基础。在MyEclipse这样的集成开发环境中,可以方便地创建和...
通过以上步骤,利用MyEclipse的自动生成功能,我们可以快速地搭建起一个基于Hibernate的Java Web项目,大大提高了开发效率。同时,这也为我们提供了学习和理解Hibernate配置文件、Java Bean类和映射文件结构的机会。