Hibernate中代码自动生成小结
2006-09-27 17:22
316 查看
Hibernate中需要class和mapping file, 也就是java文件和hbm.xml文件,由于Hibernate只支持DML, 不支持DDL,所以在DB中需要有DDL或已经存在的数据库的表。Hibernate中共有三种文件与代码自动生成功能有关:
class, mapping file and DDL
1. Middlegen
是用来从DB中已存在的表,生成相应的mapping file. 可以下载一个老外的middlegen的例子。
http://sourceforge.net/project/showfiles.php?group_id=40712
调用Middlegen很简单,例子中的middlegen自动生成ant指令如下
然后会有一个GUI,给我们专门设计各种表与表之间的关系(一对一,一对多以及单向双向关系)。需要说明的是,middlegen生成的代码没有直接写mapping file灵活性好,所以生成的mapping file有时还需要我们去修改。
2. XDoclet
它是用来从java文件自动生成hbm文件的,不过我们需要在java代码中写一些规定的tag,才能得到自动生成的hbm文件.
3. hbm2java
它是用来从mapping 文件生成java代码的工具,调用很简单,在参数中需要给出所有的hbm文件,如下:
4. Schema Export
如果写好了java文件和hbm文件,就可以用SchemaExport直接生成DDL文件,调用同样简单,只需在java代码中,加入如下:
从这四种自动生成工具来看, 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强大的灵活性。
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强大的灵活性。
相关文章推荐
- Hibernate中代码自动生成小结
- Hibernate中代码自动生成小结- -
- SpringMVC学习系列-后记 结合SpringMVC和Hibernate-validator,根据后台验证规则自动生成前台的js验证代码
- Hibernate自动生成Java代码似乎是个垃圾
- Eclipse(LUNA4.4.2)配置hibernate(4.3.8)连接数据库并自动生成代码
- hibernate tools eclipse插件 cfg.xml-->console 自动生成配置代码
- 发布基于Eclipse的数据库建模及ORM框架代码自动生成插件(支持Hibernate,IBatis等),100K行代码
- hibernate代码生成工具 转换工具 自动生成工具
- SpringMVC学习系列-后记 结合SpringMVC和Hibernate-validator,根据后台验证规则自动生成前台的js验证代码
- 使用Hibernate+Middlegen实现自动代码生成简介
- eclipse利用HibernateSynchronize自动生成代码
- tigercode是一款自动代码生产工具,支持springmvc+spring+mybatis或springmvc+spring+hibernate框架生成,数据库支持mysql ,oracle
- 反转Hibernate Reverse Engineering)模板的代码自动生成规则
- hibernate自动生成表的代码
- Xdoclet + Ant自动生成Hibernate配置文件
- Hibernate 自动生成表问题
- Intellij IDEA 中使用 MyBatis-generator 自动生成 MyBatis 代码
- JB2005里面的SWING代码的自动生成
- mybatis代码自动生成
- Hibernate自动生成工具MiddleGen