hibernate自动生成映射文件
映射文件是O/R Mapping的关键,相当于控制中心。当数据库表较多时,手动配置该映射文件非常耗时。为了快速开发程序,使开发人员的注意力集中到业务逻辑上来,Hibernate官方提供的MiddleGen工具,它可以很方便的生成映射文件。这里下载:http://prdownloads.sourceforge.net/hibernate/?sort_by=date&sort=desc
MiddleGen是根据数据库表来生成映射文件的,所以要与数据库进行配置。具体配置如下:
[1]修改数据库配置文件:
进入MiddleGen目录下的config/database子目录,可以看到有很多不同数据库的配置文件。根据我们的数据库选择,例如我使用的是MySql,所以打开mysql.xml文件。文件内容如下:
<property name="database.script.file" value="/${src.dir}/sql/${name}-mysql.sql"/>
<!--在这里配置JDBC驱动文件,注意,请确保MiddleGen的lib目录下有该驱动-->
<property name="database.driver.file" value="/${lib.dir}/mm.mysql-2.0.14-bin.jar"/>
<property name="database.driver.classpath" value="/${database.driver.file}"/>
<property name="database.driver" value="/org.gjt.mm.mysql.Driver"/>
<!--配置数据库URL-->
<property name="database.url" value="jdbc:mysql:///sports"/>
<!--用户名-->
<property name="database.userid" value="hiswing"/>
<!--密码-->
<property name="database.password" value="123"/>
<property name="database.schema" value=""/>
<property name="database.catalog" value=""/>
<property name="jboss.datasource.mapping" value="mySQL"/>
[2]修改Build.xml文件:
该文件放在MiddleGen的根目录下。它是MiddleGen-Hibernate的Ant构建文件。MiddleGen-Hibernate是通过Build.xml文件的具体参数据来生成映射文件的。修改处如下:
<!--指定数据库配置文件,就是[1]中的那个文件,默认为./config/database/hsqldb.xml-->
<!DOCTYPE project [
<!ENTITY database SYSTEM "file:./config/database/mysql.xml">
]>
<!--配置Application Name,默认为airline-->
<property name="name" value="sports"/>
<!--配置文件输出目录,默认为${build.dir}/gen-src-->
<property name="build.gen-src.dir" value="E:\Programme\java\sports"/>
<!--配置对应JAVABEAN(PO)的包,默认为package="${name}.hibernate"-->
<!--genXDocletTags设置为true时生成的代码将包含xdoclet tag,可用来调整映射文件-->
<hibernate
destination="${build.gen-src.dir}"
package="com.cuitao.sports.po"
genXDocletTags="true"
genIntergratedCompositeKeys="false"
javaTypeMapper="middlegen.plugins.hibernate.HibernateJavaTypeMapper"
/>
至此,MiddleGen-Hibernate的配置就算完成了。接下来,将使用Ant帮助我们启动MiddleGen-Hibernate。(可以在Apache网站上下载)
运用MS-Dos方式进入MiddleGen的根目录,运行ant,将启动MiddleGen-Hibernate的界面。在此之前,别忘记启动数据库: )
Domain Class Name :PO的类名
Key Generator:主键生成器。其中有一些选项,一般选用uuid.hex 方式生成主键将提供最好的性能和数据库平台适应性。
Schema Name:数据库Schema Name
Persister:自定义持久类实现类类名。如果系统除了Hibernate 之外的其它持久层实现机制,如通过存储过程得到数据集,甚至从LDAP中获取数据来填充我们PO。
Enable proxies:代理(用于延迟加载[Lazy Loading])。
Dynamic Update:选定该项后,生成Update SQL 时将不包含未发生变动的字段属性,可以提升SQL执行效率。
Implement the Lifecyle interface:是否实现Lifecyle接口。实现Lifecyle接口后我们就可以在数据库操作之前,之后触发指定操作。
以上的配置是针对类进行的。下面将针对属性进行配置。
Hibernate mapping specialty:映射类型Key=主键,Property=属性。
Java property name:数据库字段对应的PO的属性名。
Java Type:数据库字段对应的PO属性的数据类型。
最后,单击窗口顶部的Generate 按钮,MiddleGen将自动生成这些数据库表所对应的Hibernate映射文件。映射文件是以.hbm.xml 作为后缀的,一个映射文件对应数据库的一个表。
hibernate自动生成映射文件的更多相关文章
- 使用Mybatis Generator插件自动生成映射文件(cmd无法进入文件,dns服务器对区域没有权威等问题)遇到问题
使用Mybatis Genertor插件自动生MyBatis所需要的DAO接口,实体模型类,Mapping映射文件,将生成的代码赋值到项目工程中即可. 有命令行,Eclipse插 ...
- 在MyEclipse的Maven环境下,使用mybatis-generator插件自动生成映射文件(接口)及实体类
在数据表比较多的情况下,手动编写sql映射文件和实体类,实在太多过繁琐,而mybatis-generator能自动生成这此东西,减少了重复性的工作量.mybatis-generator的配置容易出现问 ...
- hibernate反向生成映射文件报错
报错原因:可能是你的数据库里的某个表没设置主键.
- hibernate 的映射文件快速生成:使用CodeSmith快速生成映射文件和映射类
一 CodeSmith简介 本文以表自动生成NHibernate的映射文件和映射类的实例来说明一下本软件的使用方法. CodeSmith是一种基于模板的代码生成工具,其使用类似于ASP.NET的语法来 ...
- 使用CodeSmith快速生成映射文件和映射类
一 CodeSmith简介 本文以表自动生成NHibernate的映射文件和映射类的实例来说明一下本软件的使用方法. CodeSmith是一种基于模板的代码生成工具,其使用类似于ASP.NET的语法来 ...
- Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件
原文:转:Java IDE 编辑器 --- IntelliJ IDEA 进阶篇 生成 hibernate 实体与映射文件 2011-04-30 12:50 很多人不知道怎么用 IntelliJ IDE ...
- 【原创】Hibernate自动生成(1)
本实战是博主初次学习Java,分析WCP源码时,学习HibernateTools部分的实战,由于初次接触,难免错误,仅供参考,希望批评指正. 开发环境: Eclipse Version: Photon ...
- 【原创】Hibernate自动生成(2)
本实战是博主初次学习Java,分析WCP源码时,学习HibernateTools部分的实战,由于初次接触,难免错误,仅供参考,希望批评指正. 开发环境: Eclipse Version: Photon ...
- 解决myeclipse4.1.1对一个表生成映射文件的时候,出现“generating artifacts"的解决!
很多人在用myeclipse4.1.1对一个表生成映射文件的时候,都出现“generating artifacts"的问题.我也遇到了这个问题,弄得我也很郁闷!看了很多人的帖子后还是无法搞定 ...
随机推荐
- 户外物理渗透:终端机,客户端的web测试思路
现在的客户端界面越做越好看了,很多用到了web技术,轻便.界面炫.更新快,但是这样web的缺点也就出来了,就是不稳定,容易受用户等因素影响. 因为很多客户端web是内嵌的,内部通信,所以很多对安全的考 ...
- JS控制图片拖动 放大 缩小 旋转 支持滚轮放大缩小 IE有效
<html> <head> <title>图片拖动,放大,缩小,转向</title> <script type="text/ja ...
- [HTML/CSS]display:none和visibility:hidden的区别
写在前面 在群里有朋友问这样一个问题,display:none的标签,影响了布局.这就引出了本篇这样的问题,印象中display:none的块元素是不占位置的. 一个例子 <!DOCTYPE h ...
- awk 统计数据在文件中的出现次数
突然发现awk原来可以统计同一数据在要处理的文件中所出现的次数.原来的时候为了分析数据还自己写程序,哎,无语,当时还以为自己多强,手工分析不过来的东西写程序处理.现在想来实在是年少轻狂.解决问题嘛,不 ...
- Asp.net的服务器推技术 (Server Push)
在以往的和服务器端通信技术中,我们多数使用的是AJAX轮询式访问,也就是在Javascript中控制时间间隔,然后每隔一段时间就访问一次服务器,然后获得数据或通知.但是这种轮询方式的访问有90%是在做 ...
- CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待。
CountDownLatch,一个同步辅助类,在完成一组正在其他线程中执行的操作之前,它允许一个或多个线程一直等待. 主要方法 public CountDownLatch(int count); pu ...
- Sqli-labs less 26
Less-26 TIPS:本关可能有的朋友在windows下无法使用一些特殊的字符代替空格,此处是因为apache的解析的问题,这里请更换到linux平台下. 本关结合25关,将空格,or,and,/ ...
- 教你如何利用xml格式的sitemap文件做好SEO
教你如何利用xml格式的sitemap文件做好SEO 浏览: | 更新:-- : 一般的网站中都有网站地图文件,它有HTML格式与XML格式,网站地图可以帮助搜索引擎抓取.帮助用户找到自己所需要的内容 ...
- What does addScalar do?
The JavaDoc says: SQLQuery org.hibernate.SQLQuery.addScalar(String columnAlias, Type type) Declare a ...
- 分布式数据存储-MySQL主从复制
前言 一.主从复制过程 MySQL的主从复制能力是通过三个线程来实现的,两个在Slave端的I/O和SQL两个线程,还有一个在Master端I/O线程: Binlog dump thread:Mast ...