使用hibernate可以用面向对象的思想来操作数据库,编写了build.xml构建文件以后,运行输出sql语句,下面是本人写的一个模板。输出相应数据库bean的还在研究,有人帮忙的话写写。
<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================
Jul 13, 2009 7:30:25 PM
Department
description
huangjx
====================================================================== -->
<project name="Department" default="generate-sql">
<property name="dir.base" value="." />
<property name="dir.src" value="${dir.base}/src" />
<property name="dir.flex_src" value="${dir.base}/flex_src" />
<property name="dir.lib" value="${dir.base}/WebRoot/WEB-INF/lib" />
<property name="dir.build" value="${dir.base}/build" />
<property name="dir.data" value="${dir.base}/data" />
<path id="runtime.path">
<pathelement location="${dir.src}" />
<fileset dir="${dir.lib}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- =================================
target: clean
================================= -->
<target name="clean">
<delete dir="${dir.build}" />
</target>
<!-- =================================
target: init
================================= -->
<target name="init" depends="clean">
<echo message="初始化开始">
</echo>
<mkdir dir="${dir.build}" />
<mkdir dir="${dir.data}" />
<echo message="初始化结束">
</echo>
</target>
<!-- =================================
target: compile
================================= -->
<target name="compile" depends="init" description="--> description">
<javac srcdir="${dir.src}" destdir="${dir.build}" debug="on" optimize="on" deprecation="on" encoding="utf-8" source="1.5" target="1.5">
<classpath refid="runtime.path">
</classpath>
</javac>
</target>
<!--tools for hibernate-->
<taskdef name="schemaExport" classname="org.hibernate.tool.hbm2ddl.SchemaExportTask" classpathref="runtime.path">
</taskdef>
<!-- =================================
target: generate-sql
================================= -->
<target name="generate-sql">
<copy todir="${dir.build}">
<fileset dir="${dir.src}">
<include name="**/*.hbm.xml" />
</fileset>
</copy>
<schemaExport properties="${dir.base}/WebRoot/WEB-INF/hibernate.properties" quiet="no" text="true" drop="no" delimiter=";" output="${dir.data}/schema-export.sql">
<fileset dir="${dir.src}/">
<include name="**/*.hbm.xml" />
</fileset>
</schemaExport>
</target>
</project>
皇天不负有心人,终于知道怎么输出Javabean了,这样一个ant文件大大缩短了编码时间。搜索了很久,真让我失望,国内国外竟然没有人写出来,最后还是上官网。
<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================
Jul 13, 2009 7:30:25 PM
Department
description
huangjx
====================================================================== -->
<project name="Department" default="generate-sql">
<property name="dir.base" value="." />
<property name="dir.src" value="${dir.base}/src" />
<property name="dir.flex_src" value="${dir.base}/flex_src" />
<property name="dir.lib" value="${dir.base}/WebRoot/WEB-INF/lib" />
<property name="dir.build" value="${dir.base}/build" />
<property name="dir.data" value="${dir.base}/data" />
<path id="runtime.path">
<pathelement location="${dir.src}" />
<fileset dir="${dir.lib}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- =================================
target: clean
================================= -->
<target name="clean">
<delete dir="${dir.build}" />
</target>
<!-- =================================
target: init
================================= -->
<target name="init" depends="clean">
<echo message="初始化开始">
</echo>
<mkdir dir="${dir.build}" />
<mkdir dir="${dir.data}" />
<echo message="初始化结束">
</echo>
</target>
<!-- =================================
target: compile
================================= -->
<target name="compile" depends="init" description="--> description">
<javac srcdir="${dir.src}" destdir="${dir.build}" debug="on" optimize="on" deprecation="on" encoding="utf-8" source="1.5" target="1.5">
<classpath refid="runtime.path">
</classpath>
</javac>
</target>
<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="runtime.path" />
<!-- =================================
target: exportJavaBean
================================= -->
<target name="exportJavaBean" depends="compile">
<hibernatetool>
<configuration>
<fileset dir="${dir.src}">
<include name="**/*.hbm.xml" />
</fileset>
</configuration>
<hbm2java destdir="${dir.src}" />
</hibernatetool>
</target>
<!--tools for hibernate-->
<taskdef name="schemaExport" classname="org.hibernate.tool.hbm2ddl.SchemaExportTask" classpathref="runtime.path">
</taskdef>
<!-- =================================
target: generate-sql
================================= -->
<target name="generate-sql" depends="exportJavaBean">
<copy todir="${dir.build}">
<fileset dir="${dir.src}">
<include name="**/*.hbm.xml" />
</fileset>
</copy>
<schemaExport properties="${dir.base}/WebRoot/WEB-INF/hibernate.properties" quiet="no" text="true" drop="no" delimiter=";" output="${dir.data}/schema-export.sql">
<fileset dir="${dir.src}">
<include name="**/*.hbm.xml" />
</fileset>
</schemaExport>
</target>
</project>
使用第三方包的终极版build.xml,包括自动生成doc,Javabean和ddl。
<?xml version="1.0" encoding="UTF-8"?>
<!-- ======================================================================
Jul 13, 2009 7:30:25 PM
Department
description
huangjx
====================================================================== -->
<project name="Department" default="exportSqlJavaBeanDoc">
<property name="dir.base" value="." />
<property name="dir.src" value="${dir.base}/src" />
<property name="dir.flex_src" value="${dir.base}/flex_src" />
<property name="dir.lib" value="${dir.base}/WebRoot/WEB-INF/lib" />
<property name="dir.build" value="${dir.base}/build" />
<property name="dir.data" value="${dir.base}/data" />
<property name="dir.doc" value="${dir.base}/doc" />
<path id="runtime.path">
<pathelement location="${dir.src}" />
<fileset dir="${dir.lib}">
<include name="**/*.jar" />
</fileset>
</path>
<!-- =================================
target: clean
================================= -->
<target name="clean">
<delete dir="${dir.build}" />
</target>
<!-- =================================
target: init
================================= -->
<target name="init" depends="clean">
<echo message="初始化开始">
</echo>
<mkdir dir="${dir.build}" />
<mkdir dir="${dir.data}" />
<mkdir dir="${dir.doc}" />
<echo message="初始化结束">
</echo>
</target>
<!-- =================================
target: compile
================================= -->
<target name="compile" depends="init" description="--> description">
<javac srcdir="${dir.src}" destdir="${dir.build}" debug="on" optimize="on" deprecation="on" encoding="utf-8" source="1.5" target="1.5">
<classpath refid="runtime.path">
</classpath>
</javac>
</target>
<taskdef name="hibernatetool" classname="org.hibernate.tool.ant.HibernateToolTask" classpathref="runtime.path" />
<!-- =================================
target: exportJavaBean
================================= -->
<target name="exportSqlJavaBeanDoc" depends="compile">
<hibernatetool>
<configuration>
<fileset dir="${dir.src}">
<include name="**/*.hbm.xml" />
</fileset>
</configuration>
<hbm2java destdir="${dir.src}" />
<hbm2doc destdir="${dir.doc}" />
<hbm2dao destdir="${dir.src}" />
<hbm2ddl destdir="${dir.data}" drop="true" format="true" delimiter=";" export="false" outputfilename="sql.ddl" />
</hibernatetool>
</target>
</project>