利用xdoclet開發(fā)hibernate3的ant通用代碼
本文章是根據(jù)冰云BLOG上的文章改寫的,主要強(qiáng)調(diào)Hbm2Java部分的寫法,基本內(nèi)容如下: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_
???
? 數(shù)據(jù)庫驅(qū)動程序.jar
? 這兩個文件根據(jù)實(shí)際情況自定
2.拷貝這些文件到你的工程lib目錄下面
3.拷貝下面的ant代碼到你的工程
<?xml version="1.0" encoding="utf-8"?>
<project name="利用工具開發(fā)Hibernate" default="help" basedir=".">
?<!-- ******? 環(huán)境設(shè)置,可以根據(jù)自己的實(shí)際配置自行更改 ***** -->
?<!-- ******? http://blog.csdn.net/fasttalk??? ***** -->
?<!-- ******? http://www.aygfsteel.com/asktalk? ***** -->
?<!-- 源文件目錄, 可以通過項(xiàng)目->屬性->Java構(gòu)建路徑更改 -->
?<property name="src.dir" value="./src" />
?<!-- 輸出的class文件目錄,可以通過項(xiàng)目->屬性->Java構(gòu)建路徑更改 -->
?<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="利用工具開發(fā)Hibernate" />
??<echo message="-----------------------------------" />
??<echo message="" />
??<echo message="提供以下任務(wù):" />
??<echo message="" />
??<echo message="generate-hbm???? --> 運(yùn)行HibernateDoclet,生成 Hibernate 類的映射文件" />
??<echo message="schemaexport???? --> 運(yùn)行SchemaExport,利用 hbm.xml 文件生成數(shù)據(jù)表" />
??<echo message="" />
?</target>
?<!-- ************************************************************** -->
?<!-- Hbm2Java 任務(wù)在hibernate3中無法實(shí)現(xiàn) -->
?<!-- ************************************************************** -->
?<target name="generate-code" >
??<echo message="運(yùn)行 Hbm2Java 任務(wù),利用 hbm.xml 文件生成Java類文件"/>
??<taskdef name="hbm2java"
?????? classname="org.hibernate.tool.hbm2java.Hbm2JavaTask"
????????? classpathref="project.class.path">
??</taskdef>
??<hbm2java output="${src.dir}"><!--這里為產(chǎn)生的JAVA類文件目錄-->
???<fileset dir="${src.dir}">
????<include name="**/*.hbm.xml"/>
???</fileset>
??</hbm2java>
?</target>
?<!-- ************************************************************** -->
?<!-- HibernateDoclet 任務(wù) -->
?<!-- ************************************************************** -->
?<target name="generate-hbm" >
??<echo message="運(yùn)行HibernateDoclet,生成 Hibernate 類的映射文件"/>
??<taskdef name="hibernatedoclet"
???classname="xdoclet.modules.hibernate.HibernateDocletTask"
???classpathref="project.class.path">
??</taskdef>
??????? <!--
??????? destdir???????? 輸出目錄;
??????? force,????????? 每次都強(qiáng)行執(zhí)行,覆蓋原有文件;
??????? -->
??<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 任務(wù) -->
?<!-- ************************************************************** -->
?<target name="schemaexport">
??<echo message="運(yùn)行SchemaExport,利用 hbm.xml 文件生成數(shù)據(jù)表"/>
??<taskdef name="schemaexport"
???classname="org.hibernate.tool.hbm2ddl.SchemaExportTask"
???classpathref="project.class.path">
??</taskdef>
????? <!--
????? quiet=true?????????????????????? 不要把腳本輸出到stdout;
????? drop=true??????????????????????? 只進(jìn)行drop tables的步驟 ;
????? text=true??????????????????????? 不執(zhí)行在數(shù)據(jù)庫中運(yùn)行的步驟 ;
????? output=my_schema.ddl???????????? 把輸出的ddl腳本輸出到一個文件 ;
????? config=hibernate.cfg.xml???????? 從XML文件讀入Hibernate配置 ;
????? properties=hibernate.properties? 從文件讀入數(shù)據(jù)庫屬性 ;
????? format=true????????????????????? 把腳本中的SQL語句對齊和美化 ;
????? delimiter=x????????????????????? 為腳本設(shè)置行結(jié)束符
????? -->
??<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>
</project>