hbm2java和hbm2ddl的使用步骤
最近在项目中使用了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的使用步骤相关推荐
- SPRINGBOOT中如何运用JPA,简单例子
SPRINGBOOT中如何运用JPA,简单例子 步骤 1 : JPA概念顶折 JPA(Java Persistence API)是Sun官方提出的Java持久化规范,用来方便大家操作数据库. 真正干活 ...
- SpringBoot系列教材 (十三)- 持久层支持 - springboot中如何运用JPA,简单例子
步骤1:JPA概念 步骤2:创建数据库 步骤3:创建表 步骤4:准备数据 步骤5:先运行,看到效果,再学习 步骤6:模仿和排错 步骤7:基于前面的知识点 步骤8:application.propert ...
- hibernate3 hbm2java_hibernate3下hbm2ddl和hbm2java的配置
最近一段时间在学习hibernate3,最初在生成持久化和数据库语句(ddl)的时候都是采用手工生成的,这些工作很繁琐,而且很容易出错.后来在网上查找了一些资料,利用hibernate-tools.j ...
- Hibernate tools的hbm2ddl和hbm2java
之前用hiberate,写配置,写代码,建数据库都是手工. 也知道有辅助工具来自动完成上面的工作. 这次用Hibernate tools来实现hbm2ddl和hbm2java. 首先准备下. 确认你有 ...
- hibernate.hbm2ddl.auto配置详解
hibernate.hbm2ddl.auto配置详解 http://www.cnblogs.com/feilong3540717/archive/2011/12/19/2293038.html hib ...
- hibernate.hbm2ddl.auto配置及意义
*********************************************************** 这两天在整理Spring + JPA(Hibernate实现),从网上copy了 ...
- Nhibernate.hbm2ddl.auto配置详解
hibernate.cfg.xml 中hibernate.hbm2ddl.auto配置节点如下: <properties> <property name="hibernat ...
- JEECG - 基于代码生成器的J2EE智能开发框架 续一: JEECG框架搭建步骤 [更新版]
提醒: A.项目开发环境: MyEclipse6.5 + jdk1.6 + Tomcat6.0 ; B.目前已经测试通过的数据库有MySql5.Oracle10g.SqlServer200 C.建 ...
- JEECG - 基于代码生成器的J2EE智能开发框架 续一:开发环境搭建步骤
提醒: A.项目开发环境:MyEclipse6.5+jdk1.6+Tomcat6.0 B.目前已经测试通过的数据库有MySql5.Oracle10g.SqlServer200 C.建议使用goo ...
最新文章
- 如何利用 notedown 完成 ipynb与markdown之间的格式转换?
- Unix/Linux中Cron的用法
- postgresql dead_tuple和live_tuple
- uniapp弹出框_uniApp上拉刷新,下拉加载,以及筛选功能
- 【计算机系统设计】实践笔记(3)改进数据通路:移位R型指令分析
- Python中的生成器与迭代器
- postman怎么不登陆使用_最新百度云不限速,免安装、免登陆、不限速,打开网站就能使用...
- 漫步最优化二十二——收敛速率
- 摩托罗拉edge S30冠军版再次开售:512GB超大存储 1GB不到5元钱!
- 通过SpringAop、Filter对Request参数解密和对Response内容加密
- 极通EWEBS远程接入软件
- Number精度超了怎么办
- 修改Android Studio 项目名称
- 固态硬盘usb测试软件,固态硬盘检测修复坏道三级OP设置软件HDAT2 5.3 ISO版
- 速学Latex之数学公式编辑
- 王者荣耀android加ios好友,王者荣耀安卓和苹果能加好友吗 安卓和ios怎么加好友...
- XXL-JOB任务调度中心---阻塞处理策略
- 激光制导炸弹导引头半实物仿真系统ETest方案设计
- PPT设计:PPT封面页9种设计布局/思维
- 21-CSS中的3D属性
热门文章
- 【Android 逆向】APK 文件处理脚本 ApkTool.py ( 脚本简介 | 用法 | 分析 APK 文件 )
- 【Android 组件化】路由组件 ( 注解处理器获取被注解的节点 )
- 【RecyclerView】 八、RecyclerView.ItemDecoration 条目装饰 ( onDraw 和 onDrawOver 绘制要点 )
- 【组合数学】生成函数 ( 生成函数应用场景 | 使用生成函数求解递推方程 )
- 初学Python——RabbitMQ的安装
- hadoop集群配置文件与功能对应解析
- 1411区间内的真素数2
- 快速排序之Java实现
- 微信之父张小龙:产品经理的必备书单(转)
- Oracle 实例恢复时 前滚(roll forward) 后滚(roll back) 问题