`
zengbo0710
  • 浏览: 417231 次
社区版块
存档分类
最新评论

利用ant,hibernate的schemaexport自动生成数据库

阅读更多

先用eclipse新建一个项目student作为示范
新建Student类
如下:
package student;

public class Student {
 private Long id;
 private String name;
 private String sex;
 private String email;
 
 public String getEmail() {
  return email;
 }
 public void setEmail(String email) {
  this.email = email;
 }
 
 public Long getId() {
  return id;
 }
 public void setId(Long id) {
  this.id = id;
 }
 
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 
 public String getSex() {
  return sex;
 }
 public void setSex(String sex) {
  this.sex = sex;
 }
 
}

接下来编写ant任务生成数据库文件
注意:
         我把eclipse放在了D盘,即D:/eclipse,eclipse对应的workspace也在D盘,D:/workspace
我把所有的lib及其依赖包都放在D:/workspace/lib,这些jar文件当然都包括hibernate3.jar还有其依赖包(里面还有其他的东西,例如spring的jar还有xdoclet的jar,这里用不到就不涉及了)
在D:/workspace/student项目目录下新建一个hibernate-build.xml用于书写ant任务,文件目录如下:D:/workspace/student/hibernate-build.xml

当然,eclipse 项目的文件我是分成两个目录的,即src(存储原文件,后缀为.java)和bin(存储编译过的文件,后缀为.class)
目录D:/workspace/student/src/Student.java
        D:/workspace/student/bin/Student.class

<project name="hibernate-build.xml" default="createDatabase">
    
<property name="classes.dir" value="bin" />
    
<property name="lib.dir" value="../lib" />
    
<property name="src.dir" value="src"/>
    
    
<path id="lib.classpath">
        
<fileset dir="${lib.dir}">
            
<include name="**/*.jar"/>
        
</fileset>
    
</path>
    
    
<path id="src.classpath">
        
<pathelement location="${src.dir}"/>
    
</path>
    
    
<path id="runtime.classpath">
        
<path refid="lib.classpath"></path>
        
<path refid="src.classpath"></path>
    
</path>



    
<target name="createDatabase">
        
<taskdef name="schemaexport" classname="org.hibernate.tool.hbm2ddl.SchemaExportTask">
            
<classpath refid="runtime.classpath" />
        
</taskdef>
        
<schemaexport config="${classes.dir}/hibernate.cfg.xml" quiet="false" text="true" delimiter=";" output="database.sql">
        
</schemaexport>
    
</target>

如上,看到quiet="false" text="true" delimiter=";" 了吗
还是要解释一下
         quiet=t"rue"   不要把脚本输出到stdout
         drop="true"    只进行drop tables的步骤
         text="true"      不执行在数据库中运行的步骤
         output="database.sql"   把生成的脚本输出到database.sql文件中
         config="hibernate,cfg.xml"   从xml文件读取hibernate的配置
         properties="hibernate.properties"    从文件读入数据库属性
         delemiter=";"   为脚本设置行结束符

注意运行的classpath要包括所有用到的jar还有src源文件(之前弄了多次都不成功,,原因就是没有加入源文件)
<path id="runtime.classpath">
  <path refid="lib.classpath"></path>
  <path refid="src.classpath"></path>
 </path>

成功之后就会看到在 D:\workspace\student下生成了database.sql文件

下次讲在xdoclet下生成 hbm.xml和hibernate.cfg.xml文件
 

分享到:
评论

相关推荐

    hibernate根据字段生成数据库表

    利用 Hibernate 自动生成数据库表不仅可以大大提高开发效率,还可以减少由于手动创建表带来的潜在错误。此外,这种方式还便于管理和维护,尤其是在需要支持多种数据库的情况下。希望本文能够帮助开发者更好地理解和...

    hibernate映射文件生成数据库

    本文将深入探讨如何利用Hibernate的映射文件来生成数据库,以此提高开发效率并减少手动创建数据库表的工作量。 一、Hibernate映射文件概述 Hibernate映射文件,通常以`.hbm.xml`为扩展名,是Hibernate用来定义Java...

    利用hibernate中的SchemaExport生成数据表

    本篇文章将详细介绍如何利用Hibernate中的`SchemaExport`工具来自动生成数据库表,以此来简化数据库设计过程,提高开发效率。 首先,我们需要了解Hibernate的逆向工程(Reverse Engineering)。在传统的开发流程中...

    根据hibernate配置文件生成数据库.zip

    2. **Hibernate利用配置文件生成数据库.txt** 这个文本文件详细介绍了如何在Hibernate的配置文件(通常是hibernate.cfg.xml)中设置参数,以便让hbm2ddl工具工作。配置文件中应包含数据库驱动、URL、用户名和密码等...

    hibernate反向生成数据库程序

    在实际项目中,开发者可能会进一步利用Hibernate的逆向工程功能,自动生成实体类和映射文件,以便更方便地进行数据库操作。这些实体类可以直接映射到数据库表,使得开发者可以专注于业务逻辑,而不用过多关注底层SQL...

    NHibernate 3.2 sqlite 自己生成

    6. **运行数据库生成**:在应用程序启动时,使用NHibernate的SchemaExport类生成数据库结构。这将根据定义的实体类和映射策略创建或更新数据库表。 7. **ConsoleApplication1**:这个文件名可能表示这是一个控制台...

    Hibernate 映射文件自动生成

    5. **更新数据库表**:在生成映射文件后,还可以结合Hibernate的SchemaExport工具生成或更新数据库表结构。 这样的自动化过程可以帮助开发者节省大量时间,并且减少人为错误。在实际开发中,例如使用Eclipse或...

    从hbm的xml文件 自动生成数据库表

    标题中的“从hbm的xml文件自动生成数据库表”指的是在Java编程中,使用Hibernate框架的一个功能,通过Hibernate Mapping(hbm.xml)文件来自动创建对应的数据库表结构。Hibernate是流行的Java ORM(对象关系映射)...

    hibernate反向生成数据库表.doc

    利用Hibernate,开发者可以将Java类与数据库表进行映射,使得数据库操作更加面向对象。本文将详细介绍如何使用Hibernate反向工程生成数据库表。 首先,我们需要确保系统已经配置了Hibernate的相关依赖。这通常涉及...

    Ant打包 Hibernate配置 实例

    2. **生成Hibernate配置文件**:使用Hibernate的SchemaExport工具,我们可以根据实体类生成数据库表结构,或者根据现有数据库结构生成映射文件。 3. **编译源代码**:确保所有Hibernate相关的类被正确编译。 4. **...

    用Hibernate3.1实现XML和数据库的同步

    6. **SchemaExport工具**:`org.hibernate.tool.hbm2ddl.SchemaExport`工具可用于根据`.hbm.xml`文件自动生成数据库表结构,简化了数据库初始化和维护工作。 #### 实践步骤详解 - **环境搭建**:首先,需确保已...

    改AHibernate 实现数据库 自动新增表参数

    1. **配置Hibernate的自动DDL生成**:默认情况下,Hibernate提供了`hibernate.hbm2ddl.auto`属性,可以设置为"create"、"update"等值,使得在应用启动时根据实体类自动创建或更新数据库表。为了实现自动新增参数,...

    hibernate动态数据库进化版

    这可以通过解析数据库元数据来实现,比如使用`org.hibernate.tool.hbm2ddl.SchemaExport`工具生成HBM文件,然后反向工程生成Java实体。 4. **Criteria API和HQL的动态构建**:这些API允许在运行时根据条件动态构造...

    hibernate的映射表生成器

    6. **数据库表的生成**: 一旦映射文件准备好,开发者可以使用Hibernate的`SchemaExport`工具,依据映射文件生成或更新数据库表结构。这个GUI工具可能会包含一键生成表的功能,使整个过程更加便捷。 7. **逆向工程**...

    hibernate动态生成表结构

    Hibernate提供了一个名为`SchemaExport`的工具类,它可以用来从映射文件或注解生成数据库表。有两种主要的方法: 1. `create()`:这个方法会在数据库中创建所有定义的表,但不会删除已经存在的表。 2. `...

    hibernate-extensions和Middlegen-Hibernate

    其中,最具吸引力的是它的`SchemaExport`和`SchemaUpdate`工具,这两个工具能够根据配置的实体类自动生成数据库的DDL脚本,或者直接在现有的数据库上更新表结构。此外,hibernate-extensions还支持动态代理,允许...

    nhibernate 由类文件,映射文件自动生成表的 源代码

    在标题和描述中提到的“nhibernate 由类文件,映射文件自动生成表的 源代码”,指的是使用NHibernate的SchemaExport工具或编程方式,根据定义的类和映射文件自动创建数据库表的机制。以下是对这个主题的详细解释: ...

    Hibernate.3.6.10帮助文档

    10. **工具与插件**:介绍了Hibernate提供的工具,如SchemaExport用于生成数据库表结构,Enhancer用于增强实体类,以及IDE集成插件等。 11. **最佳实践**:分享了在实际开发中使用Hibernate的一些最佳实践和注意...

    Hibernate_3.2.0_符合Java习惯的关系数据库持久化

    5.6. 数据库生成属性(Generated Properties) 5.7. 辅助数据库对象(Auxiliary Database Objects) 6. 集合类(Collections)映射 6.1. 持久化集合类(Persistent collections) 6.2. 集合映射( Collection mappings...

    hibernate对象转换数据库表

    Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库 Hibernate最初级的操作,使用SchemaExport创建数据表 本资源自带...

Global site tag (gtag.js) - Google Analytics