1. Middlegen 
是用来从DB中已存在的表,生成相应的mapping file. 可以下载一个老外的middlegen的例子。 
http://sourceforge.net/project/showfiles.php?group_id=40712然后会有一个GUI,给我们专门设计各种表与表之间的关系(一对一,一对多以及单向双向关系)。需要说明的是,middlegen生成的代码没有直接写mapping file灵活性好,所以生成的mapping file有时还需要我们去修改。 2. XDoclet 
它是用来从java文件自动生成hbm文件的,不过我们需要在java代码中写一些规定的tag,才能得到自动生成的hbm文件. 3. hbm2java 
它是用来从mapping 文件生成java代码的工具,调用很简单,在参数中需要给出所有的hbm文件
4. SchemaExport 
如果写好了java文件和hbm文件,就可以用SchemaExport直接生成DDL文件
=================从这四种自动生成工具来看, 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