使用hbm2java生成代码是非常容易的,比hibernate提供的schemaExport(配置文件到数据库)的使用容易得多。
真不知道作者怎么搞的,把个schemaExport写得这么难......
1.开始前的准备
1.1 准备hibernate-2.1.6.zip
1.2 准备hibernate-extensions-2.1.2.zip
1.3 准备logging-log4j-1.2.9.zip
1.4 把相关.jar文件全部复制到工程目录之下的lib目录
1.5 知道如何使用ant。可阅读我写的文章"非常简单的ant文件"
2.创建工程目录及文件结构如下
Payment <dir>
|-src <dir>
|-hbm <dir>
|-payment <dir>
|-Payment.hbm.xml
|-classes <dir>
|-lib <dir>
|-build.xml
|-hibernate.codegen.xml
|-log4j.properties
3.各文件代码
3.1 build.xml
<project name="" basedir="./" default="g">
<path id="p">
<fileset dir="lib/">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="g" >
<taskdef name="g" classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask" classpathref="p"/>
<g config="hibernate.codegen.xml" output="src">
<fileset dir="hbm">
<include name="**/*.hbm.xml"/>
</fileset>
</g>
</target>
</project>
3.2 hibernate.codegen.xml
<?xml version='1.0' encoding='gbk'?>
<codegen>
<generate renderer="net.sf.hibernate.tool.hbm2java.BasicRenderer"/>
</codegen>
3.3 log4j.properties
# Configure logging for testing
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.SimpleLayout
3.4 Payment.hbm.xml
<?xml version="1.0" encoding="gbk"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<class name="payment.Payment" table="PAYMENT">
<id name="id" type="long" column="PAYMENT_ID">
<generator class="native"/>
</id>
<property name="amount" column="AMOUNT" type="long"/>
</class>
</hibernate-mapping>
4.说明
4.1 build.xml文件中将hibernate extensions包提供的net.sf.hibernate.tool.hbm2java.Hbm2JavaTask定义为一个任务。
4.2 此任务根据hbm目录包括子目录下的所有以.hbm.xml结尾的hibernate配置文件生成.java文件,并输出到src目录。输出的.java路径是根据class标签中的name属性。
4.3 需要给Hbm2JavaTask类指定一个类渲染器配置文件hibernate.codegen.xml。
4.3 配置log4j.properties查看输出,可选。