• hibernate 的自动生成工具


    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强大的灵活性。



    Java到.NET的转换利器——JLCA

    JLCA(Java Language Conversion Assistant)是VS.NET中内置的一套Java语言到.NET语言的转换工具,对于有这样需求的开发团队而言,这是一篇不可不读的文章。

    OptimalJ实现MDA的实践

    OptimalJ是另一个重量级的MDA工具。虽然OptimalJ目前只支持Java的MDA变换,但是其独树一帜的设计思想,仍然值得我们好好学习。

    http://www.cnblogs.com/bobomail/archive/2005/04/29/147425.html
    相关
    http://dev.csdn.net/article/71/71115.shtm

  • 相关阅读:
    Django之使用内置函数和celery发邮件
    Django之FBV和CBV的用法
    使用xampp将angular项目运行在web服务器
    Django之使用中间件解决前后端同源策略问题
    Spring cloud Feign 调用端不生效
    进程同步——哲学家进餐问题Java实现
    数据库事务四大特性、隔离级别
    B树 B+树 红黑树
    SpringCloud Config Bus webhook 只能刷新config server 不能刷新config client
    Java8 容器类详解
  • 原文地址:https://www.cnblogs.com/runfeng/p/212342.html
Copyright © 2020-2023  润新知