hibernate代码生成工具 转换工具 自动生成工具

来源:互联网 发布:百度网络存在安全隐患 编辑:程序博客网 时间:2024/05/29 07:17
hibernate代码生成工具 转换工具 自动生成工具
 1. Middlegen

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

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

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

  1. <middlegen  
  2.          appname="${name}"  
  3.          prefsdir="${src.dir}"  
  4.          gui="${gui}"  
  5.          databaseurl="${database.url}"  
  6.          initialContextFactory="${java.naming.factory.initial}"  
  7.          providerURL="${java.naming.provider.url}"  
  8.          datasourceJNDIName="${datasource.jndi.name}"  
  9.          driver="${database.driver}"  
  10.          username="${database.userid}"  
  11.          password="${database.password}"  
  12.            
  13.       >  
  14.      <hibernate  
  15.             destination="${build.gen-src.dir}"  
  16.             package="${name}.hibernate"  
  17.       />  
  18.   </middlegen>  

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

2. XDoclet

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

  1. <hibernatedoclet  
  2.           destdir="src"  
  3.           excludedtags="@version,@author,@todo"  
  4.           force="true"  
  5.           verbose="true">  
  6.           <fileset dir="src">  
  7.               <include name="**/*.java"/>  
  8.               <exclude name="**/Product.java"/>  
  9.           </fileset>  
  10.           <hibernate version="2.0"/>  
  11. </hibernatedoclet>  


3. hbm2java

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

  1. <java classname="net.sf.hibernate.tool.hbm2java.CodeGenerator" fork="true">  
  2.       <classpath refid="classpath"/>  
  3.       <arg line="${build.gen-src.dir}/airline/hibernate/*.hbm.xml"/>  
  4. </java>  

4. Schema Export

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

  1. conf = new Configuration()  
  2.       .addClass(a.class)  
  3.       .addClass(b.class);  
  4. SchemaExport dbExport = new SchemaExport(conf);  
  5. dbExport.setOutputFile("myschema.sql");  
  6. 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强大的灵活性。

0 0
原创粉丝点击