hibernate代码生成工具 转换工具 自动生成工具
2016-07-13 16:47
645 查看
hibernate代码生成工具 转换工具 自动生成工具
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强大的灵活性。
收藏于 2010-09-18
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强大的灵活性。
收藏于 2010-09-18
相关文章推荐
- 细看网络仿真工具
- C#实现属于自己的QQ截图工具
- 详解SQL Server 2008工具SQL Server Profiler
- DDL、DML和DCL的区别与理解
- C#实现将千分位字符串转换成数字的方法
- oracle SCN跟TIMESTAMP之间转换
- C#将制定目录文件名转换成大写的方法
- Access转成SQL数据库的方法
- C#实现Stream与byte[]之间的转换实例教程
- C#中结构体和字节数组转换实现
- C#进制之间的相互转换详解
- 自己动手把ACCESS转换到SQLSERVER的方法
- C#实现的SN快速输入工具实例
- DOS下的必备工具
- 对比分析C语言中的gcvt()和ecvt()以及fcvt()函数
- C语言将24小时制转换为12小时制的方法
- 基于C++自动化编译工具的使用详解
- C#实现HSL颜色值转换为RGB的方法
- C#利用微软自带库进行中文繁体和简体之间转换的方法