您的位置:首页 > 其它

hibernate 的自动生成工具

2005-04-29 12:18 435 查看
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="${name}"

         prefsdir="${src.dir}"

         gui="${gui}"

         databaseurl="${database.url}"

         initialContextFactory="${java.naming.factory.initial}"

         providerURL="${java.naming.provider.url}"

         datasourceJNDIName="${datasource.jndi.name}"

         driver="${database.driver}"

         username="${database.userid}"

         password="${database.password}"

         

      >

     <hibernate

            destination="${build.gen-src.dir}"

            package="${name}.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="${build.gen-src.dir}/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强大的灵活性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: