最近在项目中使用了hibernate作为持久层技术方案,所以为了加快开发效率.我使用了一些工具,如hbm2java和hbm2ddl,ant

那什么是hbm2java呢,顾名思义就是**.hbm.xml自动生成javabean.而hbm2ddl就是**.hbm.xml生成特定数据库的SQL.那接下来我介绍这几个工具如何使用.

1.首先需要安装ant.

将ant下载后解压到任意目录下(如果有eclipse的话,本身就集成有ant,所以不用在下载).然后在环境变量中设置ANT_HOME,ANT_HOME为ant的安装路径,然后将ANT_HOME/lib加入到classpath中,将ANT_HOME/bin加到path中.这样就完成了ant的环境设置.

2.书写bulid.xml

要使用ant,必须要编写bulid.xml文件,用下面的一个bulid.xml例子来说明怎么使hbm2java和hbm2ddl工作.

<?xml version="1.0"?>
 <project name="" basedir="." default="">
 <property name="source.root" value="src"/>
 <property name="class.root" value="classes"/>
 <property name="lib.dir" value="lib"></property>
 <property name="schema.dir" value="schema"></property> 
 
  <path id="project.path">
   <pathelement location="${class.root}"/>
    <fileset dir="WebRoot/WEB-INF/lib">
      <include name="*.jar"/>
    </fileset>
  </path>
 <target name="prepare" description="Set up bulid structures">
  <delete dir="${class.root}"></delete>
    <mkdir dir="${class.root}"/>
  <copy todir="${class.root}">
  <fileset dir="${source.root}">
   <include name="**/*.hbm.xml"/>
  </fileset>
  </copy>
  
 </target>
 <target name="compile" depends="hbm2java">
 <javac srcdir="src/com/hollycrm/testframework/bean"
        destdir="${class.root}"
        debug="on"
        optimize="off"
        deprecation="on">  
 <classpath refid="project.path"/>
</javac>
 </target>

<target name="hbm2java" depends="prepare">
      <taskdef name="hbm2java" classname="net.sf.hibernate.tool.hbm2java.Hbm2JavaTask" classpathref="project.path"/>

//net.sf.hibernate.tool.hbm2java.Hbm2JavaTask类必须在项目lib下.
      <hbm2java config="hibernate.codegen.xml" output="${source.root}">

<!--hibernate.codegen.xml是一个辅助用的xml内容是

<codegen>
  <generate renderer="net.sf.hibernate.tool.hbm2java.BasicRenderer"/>
</codegen>
-->
        <fileset dir="${source.root}">
          <include name="**/*.hbm.xml"/>  
        </fileset>
      </hbm2java>
    </target>
     
  <target name="hbm2ddl" depends="compile" description="Create SQL by *.hbm.xml">
        <taskdef name="hbm2ddlexport"
   classname="net.sf.hibernate.tool.hbm2ddl.SchemaExportTask"
   classpathref="project.path"/>
   <hbm2ddlexport properties="hibernate.properties"
     quiet="no" drop="no" text="yes" output="hibernate.sql" delimiter=";">

/**

hibernate.properties中设置生成何种数据库SQL比如生成MySQL脚本DDL则:

hibernate.dialect=net.sf.hibernate.dialect.MySQLDialect
hibernate.connection.dirver_class=org.gjt.mm.mysql.Driver
hibernate.connection.url=jdbc:mysql://localhost:3306/mytest
hibernate.connection.username=root
hibernate.connection.password=jordan
hibernate.show_sql=true

其他数据库以此类推

*/
     <fileset dir ="${class.root}">
     <include name="**/*.hbm.xml"/>
     </fileset> 
      </hbm2ddlexport> 
  </target>
  
</project>

3.执行ant,在cmd中,到build.xml所在的路径下.执行 ant hbm2java则由**.hbm.xml 生成 javabean,执行ant hbm2ddl则生成该**.hbm.xml对应的ddl文件.

4.到此为之,hbm2java和hbm2ddl介绍完毕.如果想用ddl生成hbm.xml可以选择使用Middlegen   javabean生成映射文件则可以使用XDoclet来实现.

hbm2java和hbm2ddl的使用步骤相关推荐

  1. SPRINGBOOT中如何运用JPA,简单例子

    SPRINGBOOT中如何运用JPA,简单例子 步骤 1 : JPA概念顶折 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,用来方便大家操作数据库. 真正干活 ...

  2. SpringBoot系列教材 (十三)- 持久层支持 - springboot中如何运用JPA,简单例子

    步骤1:JPA概念 步骤2:创建数据库 步骤3:创建表 步骤4:准备数据 步骤5:先运行,看到效果,再学习 步骤6:模仿和排错 步骤7:基于前面的知识点 步骤8:application.propert ...

  3. hibernate3 hbm2java_hibernate3下hbm2ddl和hbm2java的配置

    最近一段时间在学习hibernate3,最初在生成持久化和数据库语句(ddl)的时候都是采用手工生成的,这些工作很繁琐,而且很容易出错.后来在网上查找了一些资料,利用hibernate-tools.j ...

  4. Hibernate tools的hbm2ddl和hbm2java

    之前用hiberate,写配置,写代码,建数据库都是手工. 也知道有辅助工具来自动完成上面的工作. 这次用Hibernate tools来实现hbm2ddl和hbm2java. 首先准备下. 确认你有 ...

  5. hibernate.hbm2ddl.auto配置详解

    hibernate.hbm2ddl.auto配置详解 http://www.cnblogs.com/feilong3540717/archive/2011/12/19/2293038.html hib ...

  6. hibernate.hbm2ddl.auto配置及意义

    *********************************************************** 这两天在整理Spring + JPA(Hibernate实现),从网上copy了 ...

  7. Nhibernate.hbm2ddl.auto配置详解

    hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下: <properties> <property name="hibernat ...

  8. JEECG - 基于代码生成器的J2EE智能开发框架 续一: JEECG框架搭建步骤 [更新版]

    提醒: A.项目开发环境:   MyEclipse6.5 + jdk1.6 + Tomcat6.0 ; B.目前已经测试通过的数据库有MySql5.Oracle10g.SqlServer200 C.建 ...

  9. JEECG - 基于代码生成器的J2EE智能开发框架 续一:开发环境搭建步骤

    提醒:  A.项目开发环境:MyEclipse6.5+jdk1.6+Tomcat6.0 B.目前已经测试通过的数据库有MySql5.Oracle10g.SqlServer200   C.建议使用goo ...

最新文章

  1. 如何利用 notedown 完成 ipynb与markdown之间的格式转换?
  2. Unix/Linux中Cron的用法
  3. postgresql dead_tuple和live_tuple
  4. uniapp弹出框_uniApp上拉刷新,下拉加载,以及筛选功能
  5. 【计算机系统设计】实践笔记(3)改进数据通路:移位R型指令分析
  6. Python中的生成器与迭代器
  7. postman怎么不登陆使用_最新百度云不限速,免安装、免登陆、不限速,打开网站就能使用...
  8. 漫步最优化二十二——收敛速率
  9. 摩托罗拉edge S30冠军版再次开售:512GB超大存储 1GB不到5元钱!
  10. 通过SpringAop、Filter对Request参数解密和对Response内容加密
  11. 极通EWEBS远程接入软件
  12. Number精度超了怎么办
  13. 修改Android Studio 项目名称
  14. 固态硬盘usb测试软件,固态硬盘检测修复坏道三级OP设置软件HDAT2 5.3 ISO版
  15. 速学Latex之数学公式编辑
  16. 王者荣耀android加ios好友,王者荣耀安卓和苹果能加好友吗 安卓和ios怎么加好友...
  17. XXL-JOB任务调度中心---阻塞处理策略
  18. 激光制导炸弹导引头半实物仿真系统ETest方案设计
  19. PPT设计:PPT封面页9种设计布局/思维
  20. 21-CSS中的3D属性

热门文章

  1. 【Android 逆向】APK 文件处理脚本 ApkTool.py ( 脚本简介 | 用法 | 分析 APK 文件 )
  2. 【Android 组件化】路由组件 ( 注解处理器获取被注解的节点 )
  3. 【RecyclerView】 八、RecyclerView.ItemDecoration 条目装饰 ( onDraw 和 onDrawOver 绘制要点 )
  4. 【组合数学】生成函数 ( 生成函数应用场景 | 使用生成函数求解递推方程 )
  5. 初学Python——RabbitMQ的安装
  6. hadoop集群配置文件与功能对应解析
  7. 1411区间内的真素数2
  8. 快速排序之Java实现
  9. 微信之父张小龙:产品经理的必备书单(转)
  10. Oracle 实例恢复时 前滚(roll forward) 后滚(roll back) 问题