Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网站建设 > 服务器相关 > hibernate 的自动生成工具
【标  题】:hibernate 的自动生成工具
【关键字】:hibernate
【来  源】:http://blog.chinaunix.net/article.php?articleId=52430&blogId=1655

hibernate 的自动生成工具

Your Ad Here

出处:

http://bobomail.cnblogs.com/archive/2005/04/29/147425.aspx

class, mapping file and DDL

1. Middlegen

是用来从DB中已存在的表,生成相应的mapping file. 可以下载一个老外的middlegen的例子。

http://sourceforge.net/project/showfiles.php?group_id=40712

调用Middlegen很简单,例子中的middlegen自动生成ant指令如下

<middlegen
         appname="$"
         prefsdir="$"
         gui="$"
         databaseurl="$"
         initialContextFactory="$"
         providerURL="$"
         datasourceJNDIName="$"
         driver="$"
         username="$"
         password="$"
         
      >
     <hibernate
            destination="$"
            package="$.hibernate"
      />
  </middlegen>

然后会有一个GUI,给我们专门设计各种表与表之间的关系(一对一,一对多以及单向双向关系)。需要说明的是,middlegen生成的代码没有直接写mapping file灵活性好,所以生成的mapping file有时还需要我们去修改。

2. XDoclet

它是用来从java文件自动生成hbm文件的,不过我们需要在java代码中写一些规定的tag,才能得到自动生成的hbm文件.

<hibernatedoclet
          destdir="src"
          excludedtags="@version,@author,@todo"
          force="true"
          verbose="true">
          <fileset dir="src">
              <include name="**/*.java"/>
              <exclude name="**/Product.java"/>
          </fileset>
          <hibernate version="2.0"/>
    </hibernatedoclet>

3. hbm2java

它是用来从mapping 文件生成java代码的工具,调用很简单,在参数中需要给出所有的hbm文件,如下:

<java classname="net.sf.hibernate.tool.hbm2java.CodeGenerator" fork="true">
      <classpath refid="classpath"/>
      <arg line="$/airline/hibernate/*.hbm.xml"/>
    </java>

4. Schema Export

如果写好了java文件和hbm文件,就可以用SchemaExport直接生成DDL文件,调用同样简单,只需在java代码中,加入如下:

     conf = new Configuration()
          .addClass(a.class)
          .addClass(b.class);
     SchemaExport dbExport = new SchemaExport(conf);
     dbExport.setOutputFile("myschema.sql");
     dbExport.create(true, true);

从这四种自动生成工具来看, mapping file, java file and DDL,只要知道任何一种文件,都可以得到另外两种文件,

如:

1. 只有mapping file:

mapping file---hbm2java----java---SchemaExport----DDL

2.只有DDL

DDL---Middlegen---hbm----hbm2java----java

3.只有Java

java---XDoclet---hbm----SchemaExport----DDL

从这里,大家也可以体会到, Hibernate强大的灵活性。

什么是Hibernate的二级缓存结构:【上一篇】
好莱坞十部必看的骇客电影:【下一篇】
【相关文章】
  • 什么是Hibernate的二级缓存结构
  • 如何把Hibernate2.1升级到Hibernate3.0
  • Hibernate 配置!
  • Hibernate的Like用法
  • 利用Hibernate Synchronizer插入oralce.CLOB字段
  • 配置成功Hibernate同Spring结合的代码自动生成
  • NHibernate中使用自己的数据库连接
  • read-atleap-hibernate部分分析1-Layout
  • read-atleap-hibernate部分分析2-Field类
  • read-atleap-hibernate部分分析3-Page类
  • 【随机文章】
  • 头文件中常量前有__或_是什么意思?
  • 关于BCB写入文件进行感染的问题
  • 自己写的一个启动JBoss服务器的bat批处理
  • 安全删除Windows XP SP2的四种方法
  • 嵌入式浏览器Konqueror/E的实现
  • 详解Boot.ini
  • Common Persistence概念和构想
  • 利用session,cookie进行安全性控制
  • opencms 介绍及在weblogic8下的部署(原创)
  • Charles Petzold给撰书人的建议
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.