JAVA学习网首页 把生活查询网加入收藏 把JAVA学习网设为首页 联系方式
    Hi,JAVA学习
JAVA基础 设计模式 数据库 JavaBeans J2EE JavaDelphi 用户界面 综合文章  
进化中Hibernate3脚本
时间:22/04/2007
作者:网络
来源:网络
小提示点这里把文章加入您的收藏夹,方便下次查看
设置文章字体大小:[ ]
作者:cleverpig 
摘要:
在Hibernate有一些相当方便的辅助工具: hbm2java,hbm2ddl, 数据库的逆向工程,Mapping Editor. 这些任务可以通过Ant构建完成,Hibernate提供了Ant Tasks及其构建脚本.由于Hibernate从2到3进行了重大重构,且包重新做了组织,因此Ant构建脚本也发生了巨大变化...


转载:转载请保留本信息,本文来自http://www.matrix.org.cn/resource/article/1639_Hibernate-Script.html 在Hibernate有一些相当方便的辅助工具: hbm2java,hbm2ddl, 数据库的逆向工程,Mapping Editor.

这些任务可以通过Ant构建完成,Hibernate提供了Ant Tasks及其构建脚本.由于Hibernate从2到3进行了重大重构,且包重新做了组织,因此Ant构建脚本也发生了巨大变化.在2中脚本样式为:
<?xml version="1.0"?><project name="anto builder"   default="db" basedir=".">  <!-- Set up properties containing important project directories -->  
    <property name="source.root" value="src"/>  
    <property name="class.root" value="classes"/> 
    <property name="lib.dir" value="lib"/> 
    <property name="data.dir" value="data"/> 
  <!-- Set up the class path for compilation and execution -->  
     <path id="project.class.path">   
   <!-- Include our own classes, of course -->     
       <pathelement location="${class.root}" />   
   <!-- Include jars in the project library directory -->     
       <fileset dir="${lib.dir}">    
        <include name="*.jar"/>     
      </fileset>  
</path> 
 <target name="db" description="Runs HSQLDB database management UIagainst the database file--use when application is not running">  
    <java classname="org.hsqldb.util.DatabaseManager" fork="yes">   
        <classpath refid="project.class.path"/>    
        <arg value="-driver"/>      
        <arg value="org.hsqldb.jdbcDriver"/>       
        <arg value="-url"/>       
        <arg value="jdbc:hsqldb:${data.dir}/music"/>       
        <arg value="-user"/>      
        <arg value="sa"/>     
    </java> 
 </target> 
 <!-- Teach Ant how to use Hibernate's code generation tool -->
  <taskdef  name="hbm2java"classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask"           classpathref="project.class.path"/> 
 <!-- Generate the java code for all mapping files in our source tree -->     <target name="codegen"  description="Generate Java source from the O/R mapping files">    
    <hbm2java output="${source.root}">   
       <fileset dir="${source.root}">     
       <include name="**/*.hbm.xml"/>     
     </fileset>   
    </hbm2java> 
 </target> 
 <!-- Create our runtime subdirectories and copy resources into them -->  <target name="prepare" description="Sets up build structures">   
 <mkdir dir="${class.root}"/>   
 <!-- Copy our property files and O/R mappings for use at runtime -->  
    <copy todir="${class.root}" >     
        <fileset dir="${source.root}" >      
          <include name="**/*.properties"/>       
          <include name="**/*.hbm.xml"/>    
       </fileset>   
    </copy> 
 </target> 
 <!-- Compile the java source of the project -->
  <target name="compile" depends="prepare"  description="Compiles all Java classes">  
     <javac srcdir="${source.root}"destdir="${class.root}"debug="on"optimize="off" deprecation="on">     
 < classpath refid="project.class.path"/>    
   </javac>  
</target> 
 <!-- Generate the schemas for all mapping files in our class tree -->  <target name="schema" depends="compile"  description="Generate DB schema from the O/R mapping files">   
 <!-- Teach Ant how to use Hibernate's schema generation tool -->   
 <taskdef name="schemaexport"             classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"             classpathref="project.class.path"/>  
  <schemaexport properties="${class.root}/hibernate.properties"    quiet="no" text="no" drop="no">      
<fileset dir="${class.root}">      
  <include name="**/*.hbm.xml"/>    
  </fileset>   
 </schemaexport>  
</target>
</project>
在3中,构建脚本为:

<?xml version="1.0" encoding="GBK"?>
<project name="Hibernate" default="anthbm2java" basedir="."> 
    <property name="src.dir" value="./src" />
    <property name="class.dir" value="./bin" />
    <property name="lib.dir" value="D:/eclipse/plugins/org.hibernate.eclipse_3.0.0.alpha4/lib" />
<path id="project.class.path"> 
    <fileset dir="${lib.dir}">   
        <include name="*.jar"/> 
    </fileset>  
    <pathelement location="${class.dir}" />
</path>
<path id="tasks.classpath"> 
    <fileset dir="${lib.dir}">  
        <include name="*.jar"/>
    </fileset> 
    <pathelement location="${class.dir}" /> 
</path>
<target name="anthbm2java">    
    <taskdef name="hibernatetool"   classname="org.hibernate.tool.ant.HibernateToolTask"   classpathref="tasks.classpath"/>   
    <hibernatetool destdir="${class.dir}">      
    <configuration configurationfile="hibernate.cfg.xml" >   
        <fileset dir="${src.dir}">          
            <include name="**/*.hbm.xml" />         
        </fileset>       
    </configuration>       
    <hbm2ddl export="false" console="false" create="true" update="false" drop="false" outputfilename="broad.sql" delimeter=";"/> 
    其中的delimeter属性在Hibernate-Tool 3 A5版本中不支持.   
    <hbm2java generics="true" ejb3="false"/>   
    <cfg2hbm/>
    <hbm2doc/>      
    <!--        <cfg2cfgXml/>  这个任务在Hibernate-Tool 3 A5版本中不支持.        -->  
    </hibernatetool>  
</target> 
</project> 

Hibernate3构建脚本的变化 
这个脚本在Eclipse中检验过.

通过这个脚本,执行了很多Hibernate辅助工具的功能,方便了开发.

关于这些内容的参考可见:

http://www.hibernate.org/hib_docs/tools/ant/ 其中有些反向工程的介绍.
上一篇:用JDO替代CMP的应用

下一篇:进化中Hibernate3脚本

  • ALookInsideJ2EEPatterns(5)
  • 实现独立于供应商的 JMS 解决方案
  • java关键字详解(abstract.double.int.switch)
  • Timer与TimerTask入门
  • 沉重的翅膀——软件开发,业务?技术?
  • [JAVA]变量作用域的问题
  • Resin2.1.12的数据库连接池配置
  • wonderful learning website for java development
  • 分享Swing学习的一些经验
  • Java修饰词的总结
  • 常用数据库JDBC连接写法
  • Hibernate获得成功的十大理由
  • 关于Tomcat的并发处理能力
  • java中关于星期时间的操作
  • All About Java 关于Java的一切 : 工具, 类库, 框架
  • 老生常谈二-Java从入门到精通
  • 列出目录下的指定类型的文件
  • 设置菜单快捷键
  • 返回】 【顶部】 【关闭
    Copyright © 2005-2010 www.594k.com All Rights Reserved.
    版权所有:JAVA学习网 备案序号:皖ICP备06004238号