ant结合hibernate输出数据库sql语句的build模板

来源:互联网 发布:chrome比价 知乎 编辑:程序博客网 时间:2024/05/02 02:28

使用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>

原创粉丝点击