本文章是根据冰云BLOG上的文章改写的,主要强调Hbm2Java部分的写法,基本内容如下:
1.拷贝必须的JAR文件
下载hibernate-tools-3.0alpha1 可以到http://prdownloads.sourceforge.net/hibernate/hibernate-tools- 3.1.0.alpha5.zip下载
以下为必须的的JAR文件
jtidy-r8-21122004.jar
velocity-tools-generic-1.1.jar
hibernate-tools.jar
hibernate3.jar
这四个文件存在于 hibernate-tools-3.0alpha1 /plugins/org.hibernate.eclipse_3.0.0.alpha/lib目录下面
数据库驱动程序.jar
这两个文件根据实际情况自定
2.拷贝这些文件到你的工程lib目录下面
3.拷贝下面的ant代码到你的工程
<?xml version="1.0" encoding="utf-8"?>
<project name="利用工具开发Hibernate" default="help" basedir=".">
<!-- ****** 环境设置,可以根据自己的实际配置自行更改 ***** -->
<!-- ****** http://blog.csdn.net/fasttalk ***** -->
<!-- ****** http://www.blogjava.net/asktalk ***** -->
<!-- 源文件目录, 可以通过项目->属性->Java构建路径更改 -->
<property name="src.dir" value="./src" />
<!-- 输出的class文件目录,可以通过项目->属性->Java构建路径更改 -->
<property name="class.dir" value="./bin" />
<!-- 库文件目录 -->
<property name="lib.dir" value="E:/workspace/java/hibernate3" /><!-这里可以改写成你工程存在的lib目录--->
<!-- 定义类路径 -->
<path id="project.class.path">
<fileset dir="${lib.dir}">
<include name="*.jar"/>
</fileset>
<pathelement location="${class.dir}" />
</path>
<!-- ************************************************************** -->
<!-- 使用说明 -->
<!-- ************************************************************** -->
<target name="help">
<echo message="利用工具开发Hibernate" />
<echo message="-----------------------------------" />
<echo message="" />
<echo message="提供以下任务:" />
<echo message="" />
<echo message="generate-hbm --> 运行HibernateDoclet,生成 Hibernate 类的映射文件" />
<echo message="schemaexport --> 运行SchemaExport,利用 hbm.xml 文件生成数据表" />
<echo message="" />
</target>
<!-- ************************************************************** -->
<!-- Hbm2Java 任务在hibernate3中无法实现 -->
<!-- ************************************************************** -->
<target name="generate-code" >
<echo message="运行 Hbm2Java 任务,利用 hbm.xml 文件生成Java类文件"/>
<taskdef name="hbm2java"
classname="org.hibernate.tool.hbm2java.Hbm2JavaTask"
classpathref="project.class.path">
</taskdef>
<hbm2java output="${src.dir}"><!--这里为产生的JAVA类文件目录-->
<fileset dir="${src.dir}">
<include name="**/*.hbm.xml"/>
</fileset>
</hbm2java>
</target>
<!-- ************************************************************** -->
<!-- HibernateDoclet 任务 -->
<!-- ************************************************************** -->
<target name="generate-hbm" >
<echo message="运行HibernateDoclet,生成 Hibernate 类的映射文件"/>
<taskdef name="hibernatedoclet"
classname="xdoclet.modules.hibernate.HibernateDocletTask"
classpathref="project.class.path">
</taskdef>
<!--
destdir 输出目录;
force, 每次都强行执行,覆盖原有文件;
-->
<hibernatedoclet destdir="${src.dir}"
excludedtags="@version,@author,@todo" force="true" encoding="GBK"
verbose="true">
<fileset dir="${src.dir}">
<include name="**/*.java"/>
</fileset>
<hibernate version="3.0" xmlencoding="utf-8" />
</hibernatedoclet>
</target>
<!-- ************************************************************** -->
<!-- SchemaExport 任务 -->
<!-- ************************************************************** -->
<target name="schemaexport">
<echo message="运行SchemaExport,利用 hbm.xml 文件生成数据表"/>
<taskdef name="schemaexport"
classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
classpathref="project.class.path">
</taskdef>
<!--
quiet=true 不要把脚本输出到stdout;
drop=true 只进行drop tables的步骤 ;
text=true 不执行在数据库中运行的步骤 ;
output=my_schema.ddl 把输出的ddl脚本输出到一个文件 ;
config=hibernate.cfg.xml 从XML文件读入Hibernate配置 ;
properties=hibernate.properties 从文件读入数据库属性 ;
format=true 把脚本中的SQL语句对齐和美化 ;
delimiter=x 为脚本设置行结束符
-->
<schemaexport properties="src/hibernate.properties"
quiet="no" text="no" drop="no" output="schema-export.sql" >
<fileset dir="${src.dir}">
<include name="**/*.hbm.xml"/>
</fileset>
</schemaexport>
</target>