- 浏览: 270545 次
- 性别:
- 来自: 新乡
文章分类
- 全部博客 (227)
- servciemix (10)
- db (18)
- javaTools (4)
- hibernate (31)
- web (3)
- spring (14)
- design pattern (4)
- java security (3)
- portal (1)
- ejb (6)
- session (2)
- java_lang (21)
- jbpm (29)
- struts (7)
- orgRights (2)
- project manager Jira (7)
- 跨库事务 (2)
- mysql (14)
- ubuntu (7)
- osgi (9)
- maven ant make (4)
- 分布式 高并发 高性能 (5)
- virgo-dm_server (0)
- osgi web (3)
- platform (1)
- smooks (1)
- business (1)
- 职场生涯 (14)
- Java编码格式 (2)
- web服务 (1)
- 计算机使用 (1)
- 健康工作生活的保障,工作中务必抛掉的不良心态 (4)
- 电信-网络监控 (1)
- 多线程-multithread (1)
- 海量数据-高性能 (2)
- Mybatis (1)
- web开发平台研发 (0)
- oracle (0)
- 应用服务器调优 (0)
- web前端 (0)
- servlet-jsp (0)
- tomcat (2)
- newtouch (1)
- portal_liferay (2)
- version control (1)
- apm-impact (2)
- tools (1)
- 研发管理 (1)
- 电商业务 (1)
- 生鲜电商市场调查 (0)
- PBX (0)
- 房东 (0)
最新评论
-
lifuchao:
...
权限问题 -
Branding:
谢谢,受教了,另外,CONN AS SYSDBA,必须是在操作 ...
Oracle密码忘记了怎么办? -
zhuchao_ko:
...
Portal实现原理 -
败类斯文:
不知道改哪里。。。木有见到红色。。表示悟性低了、、
jira error: Neither the JAVA_HOME nor the JRE_HOME environment variable is defin -
c__06:
正文:假如事务我是这样定义的: <tx:method n ...
Spring中Transactional配置
Hibernate 中需要class和mapping file, 也就是java文件和hbm.xml文件,由于Hibernate只支持DML, 不支持DDL,所以在DB中需要有DDL或已经存在的数据库的表。Hibernate中共有三种文件与代码自动生成功能有关:
class, mapping file and DDL
1. Middlegen
是用来从DB中已存在的表,生成相应的mapping file. 可以下载一个老外的middlegen的例子。
http://sourceforge.net/project/showfiles.php?group_id=40712
调用Middlegen很简单,例子中的middlegen自动生成ant指令如下
引用
<middlegen
appname="${name}"
prefsdir="${src.dir}"
gui="${gui}"
databaseurl="${database.url}"
initialContextFactory="${java.naming.factory.initial}"
providerURL="${java.naming.provider.url}"
datasourceJNDIName="${datasource.jndi.name}"
driver="${database.driver}"
username="${database.userid}"
password="${database.password}"
>
<hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
/>
</middlegen>
然后会有一个GUI,给我们专门设计各种表与表之间的关系(一对一,一对多以及单向双向关系)。需要说明的是,middlegen生成的代码没有直接写mapping file灵活性好,所以生成的mapping file有时还需要我们去修改。
2. XDoclet
它是用来从java文件自动生成hbm文件的,不过我们需要在java代码中写一些规定的tag,才能得到自动生成的hbm文件.
Java代码 收藏代码
1. <hibernatedoclet
2. destdir="src"
3. excludedtags="@version,@author,@todo"
4. force="true"
5. verbose="true">
6. <fileset dir="src">
7. <include name="**/*.java"/>
8. <exclude name="**/Product.java"/>
9. </fileset>
10. <hibernate version="2.0"/>
11. </hibernatedoclet>
<hibernatedoclet
destdir="src"
excludedtags="@version,@author,@todo"
force="true"
verbose="true">
<fileset dir="src">
<include name="**/*.java"/>
<exclude name="**/Product.java"/>
</fileset>
<hibernate version="2.0"/>
</hibernatedoclet>
3. hbm2java
它是用来从mapping 文件生成java代码的工具,调用很简单,在参数中需要给出所有的hbm文件,如下:
Java代码 收藏代码
1. <java classname="net.sf.hibernate.tool.hbm2java.CodeGenerator" fork="true">
2. <classpath refid="classpath"/>
3. <arg line="${build.gen-src.dir}/airline/hibernate/*.hbm.xml"/>
4. </java>
<java classname="net.sf.hibernate.tool.hbm2java.CodeGenerator" fork="true">
<classpath refid="classpath"/>
<arg line="${build.gen-src.dir}/airline/hibernate/*.hbm.xml"/>
</java>
4. SchemaExport
如果写好了java文件和hbm文件,就可以用SchemaExport直接生成DDL文件,调用同样简单,只需在java代码中,加入如下:
Java代码 收藏代码
1. conf = new Configuration();
2. .addClass(a.class);
3. .addClass(b.class);;
4. SchemaExport dbExport = new SchemaExport(conf);;
5. dbExport.setOutputFile("myschema.sql");;
6. dbExport.create(true, true);;
conf = new Configuration();
.addClass(a.class);
.addClass(b.class);;
SchemaExport dbExport = new SchemaExport(conf);;
dbExport.setOutputFile("myschema.sql");;
dbExport.create(true, true);;
从这四种自动生成工具来看, mapping file, java file and DDL,只要知道任何一种文件,都可以得到另外两种文件,
如:
1. 只有mapping file:
mapping file---hbm2java----java---SchemaExport----DDL
2.只有DDL
DDL---Middlegen---hbm----hbm2java----java
3.只有Java
java---XDoclet---hbm----SchemaExport----DDL
从这里,大家也可以体会到, Hibernate强大的灵活性。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
class, mapping file and DDL
1. Middlegen
是用来从DB中已存在的表,生成相应的mapping file. 可以下载一个老外的middlegen的例子。
http://sourceforge.net/project/showfiles.php?group_id=40712
调用Middlegen很简单,例子中的middlegen自动生成ant指令如下
引用
<middlegen
appname="${name}"
prefsdir="${src.dir}"
gui="${gui}"
databaseurl="${database.url}"
initialContextFactory="${java.naming.factory.initial}"
providerURL="${java.naming.provider.url}"
datasourceJNDIName="${datasource.jndi.name}"
driver="${database.driver}"
username="${database.userid}"
password="${database.password}"
>
<hibernate
destination="${build.gen-src.dir}"
package="${name}.hibernate"
/>
</middlegen>
然后会有一个GUI,给我们专门设计各种表与表之间的关系(一对一,一对多以及单向双向关系)。需要说明的是,middlegen生成的代码没有直接写mapping file灵活性好,所以生成的mapping file有时还需要我们去修改。
2. XDoclet
它是用来从java文件自动生成hbm文件的,不过我们需要在java代码中写一些规定的tag,才能得到自动生成的hbm文件.
Java代码 收藏代码
1. <hibernatedoclet
2. destdir="src"
3. excludedtags="@version,@author,@todo"
4. force="true"
5. verbose="true">
6. <fileset dir="src">
7. <include name="**/*.java"/>
8. <exclude name="**/Product.java"/>
9. </fileset>
10. <hibernate version="2.0"/>
11. </hibernatedoclet>
<hibernatedoclet
destdir="src"
excludedtags="@version,@author,@todo"
force="true"
verbose="true">
<fileset dir="src">
<include name="**/*.java"/>
<exclude name="**/Product.java"/>
</fileset>
<hibernate version="2.0"/>
</hibernatedoclet>
3. hbm2java
它是用来从mapping 文件生成java代码的工具,调用很简单,在参数中需要给出所有的hbm文件,如下:
Java代码 收藏代码
1. <java classname="net.sf.hibernate.tool.hbm2java.CodeGenerator" fork="true">
2. <classpath refid="classpath"/>
3. <arg line="${build.gen-src.dir}/airline/hibernate/*.hbm.xml"/>
4. </java>
<java classname="net.sf.hibernate.tool.hbm2java.CodeGenerator" fork="true">
<classpath refid="classpath"/>
<arg line="${build.gen-src.dir}/airline/hibernate/*.hbm.xml"/>
</java>
4. SchemaExport
如果写好了java文件和hbm文件,就可以用SchemaExport直接生成DDL文件,调用同样简单,只需在java代码中,加入如下:
Java代码 收藏代码
1. conf = new Configuration();
2. .addClass(a.class);
3. .addClass(b.class);;
4. SchemaExport dbExport = new SchemaExport(conf);;
5. dbExport.setOutputFile("myschema.sql");;
6. dbExport.create(true, true);;
conf = new Configuration();
.addClass(a.class);
.addClass(b.class);;
SchemaExport dbExport = new SchemaExport(conf);;
dbExport.setOutputFile("myschema.sql");;
dbExport.create(true, true);;
从这四种自动生成工具来看, mapping file, java file and DDL,只要知道任何一种文件,都可以得到另外两种文件,
如:
1. 只有mapping file:
mapping file---hbm2java----java---SchemaExport----DDL
2.只有DDL
DDL---Middlegen---hbm----hbm2java----java
3.只有Java
java---XDoclet---hbm----SchemaExport----DDL
从这里,大家也可以体会到, Hibernate强大的灵活性。
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
发表评论
-
如何使用hibernate
2012-05-24 19:21 0一、选择Hibernate还是iBATIS都有它的道理: H ... -
关于hibernate自动建表和主键的数据类型的关系
2012-02-27 16:18 1145要想让hibernate自动建表, 1、除了 <prop ... -
用Spring+Hibernate链接时,在增删改时会报错: Write operations are not allowed in read-only mod
2011-09-11 19:53 887用Spring+Hibernate链接时,在增删改时会报错: ... -
[转]hibernate延迟加载
2011-04-26 11:41 5682007-12-01 [转]hibernate延迟 ... -
Hibernate利用XDoclet自动生成配置文件
2011-04-18 18:34 804Hibernate利用XDoclet自动生 ... -
如何利用 myeclipse 生成Hibernate 配置文件
2011-04-18 18:13 1249在hibernate中,每个数据表对应的其实是一个实体类,每个 ... -
Hibernate Synchronizer是一个Eclipse插件,可以自动生成*.hbm文件、持久化类和DAOs
2011-04-18 18:00 1897Hibernate Synchronizer是一个Eclips ... -
使用动态代理实现用AOP对数据库进行操作
2011-04-12 14:11 949使用动态代理实现用AOP对数据库进行操作 2008-03-14 ... -
Hibernate中cascade与inverse属性详解
2011-04-01 16:20 941Hibernate中cascade与inverse属性详解 ... -
事务和事务边界
2011-03-31 15:44 101510.1.2 事务和事务边界 http://book.51ct ... -
事务传播行为种类
2011-03-31 15:31 823事务传播行为种类 Spring在TransactionDef ... -
Hibernate saveOrUpdate分析
2011-03-31 15:30 862* Hibernate s ... -
使用Spring AOP代理方式实现声明式事务的原理
2011-03-31 15:28 1207使用Spring AOP代理方式实 ... -
Hibernate Session缓存概述
2011-03-31 15:27 1008* Hibernate Session缓存 ... -
解说Hibernate的工作原理实例
2011-03-31 15:26 875* 解说Hibernate的工作原理实例 ... -
简述Hibernate配置连接池
2011-03-31 15:25 843* 简述Hiber ... -
简单解析J2EE数据持久层设计
2011-03-31 15:24 981* 简单解 ... -
浅析Hibernate Callback接口
2011-03-31 15:23 896* 浅析Hibernate Callbac ... -
概述Hibernate equals()方法
2011-03-31 15:22 770* 概述Hiber ... -
概括潜在的Hibernate性能问题
2011-03-31 15:21 952* 概括潜在的Hibernate性能问题 ...
相关推荐
详解hibernate.hbm2ddl.atuo 属性的配置
Hibernate支持多种主键策略,如自动生成(GenerationType.AUTO)、固定值(GenerationType.IDENTITY)等。 4. Session:它是Hibernate的主要工作单元,用于在应用程序和数据库之间建立会话。Session提供了一种透明...
`hibernate.hbm2ddl.auto`可以设置为"create-drop"、"create"、"update"或"validate",分别对应在启动时创建/删除数据库结构、创建数据库结构、更新数据库结构或验证数据库结构。 3. **HQL(Hibernate Query ...
"Hibernate入门到精通" Hibernate 是一个基于Java的ORM(Object-Relational Mapping,对象关系映射)框架,它提供了一种简洁高效的方式来访问和操作关系数据库。下面是 Hibernate 的主要知识点: Hibernate 简介 ...
@GeneratedValue(strategy=GenerationType.AUTO) private Long id; ``` 三、字段级注解 1. 基本类型注解:`@Column` `@Column`注解用于定义字段如何映射到数据库表的列,可以设置列名、长度、是否允许为空等...
Hibernate.jar包,Hibernate可以应用在任何使用JDBC的场合,包含 hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-...
Hibernate是一个开源的对象关系映射(ORM)框架,它允许Java开发者使用面向对象的方式来操作数据库,极大地简化了数据访问层的编程工作。这个压缩包包含了Hibernate的基础jar包,这些jar文件是开发Hibernate应用所...
hibernate 5.2.15 hibernate 5.2.15 hibernate 5.2.15 hibernate 5.2.15 hibernate 5.2.15hibernate 5.2.15
标题中的“hibernate和MySQL的jar”指的是Hibernate ORM框架与MySQL数据库之间的连接库。Hibernate是一种流行的Java对象关系映射(ORM)工具,它允许开发者使用面向对象的编程方式来操作数据库,而无需直接编写SQL...
在Java开发环境中,与KingbaseV8数据库进行交互通常会用到Hibernate框架和JDBC驱动。 Hibernate是一个优秀的对象关系映射(ORM)框架,它简化了Java应用程序对数据库的操作,通过将Java对象与数据库表进行映射,...
Hibernate3 是一个强大的Java持久化框架,它允许开发者将数据库操作与业务逻辑解耦,使得应用程序的开发更为简便。这个“hibernate3全部jar包:hibernate3.jar.zip”包含了所有必要的库文件,方便用户一次性下载并...
HibernateTools是Java开发人员在使用Hibernate ORM框架时的有力辅助工具集,主要目的是为了提高开发效率,简化数据库操作。在HibernateTools 3.2.4版本中,它包含了一系列的特性与插件,以支持更便捷地进行对象关系...
2. 使用`hibernate.hbm2ddl.auto`属性自动创建或更新数据库表。例如,设置为`create`会在每次启动应用时清空并重新创建表,设置为`update`则会在已有表的基础上更新结构: ```xml <property name="hibernate.hbm2...
【描述】中的"hibernate的jar包"指的是Hibernate框架的运行库文件,这些JAR文件包含了Hibernate的所有核心API、实现和依赖库,如Hibernate Commons Annotations、Hibernate EntityManager、Hibernate Core等。...
Hibernate3是一个广泛使用的Java对象关系映射(ORM)框架,它允许开发者用面向对象的方式处理数据库操作,极大地简化了Java应用程序与数据库之间的交互。在这个"Hibernate3的依赖包"中,包含了运行Hibernate3应用...
hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar ...
《hibernate-extensions与Middlegen-Hibernate:数据库到Java对象的自动化转换》 在Java的持久化层开发中,Hibernate作为一款强大的ORM(对象关系映射)框架,极大地简化了数据库操作。然而,手动编写实体类和映射...
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate...
在这个主题中,我们主要关注的是Hibernate的配置文件`hibernate.properties`以及它的DTD(Document Type Definition)文件,包括`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`。 首先,`...
<property name="hibernate.hbm2ddl.auto">update <!-- 是否显示SQL语句 --> <property name="hibernate.show_sql">true <!-- SQL格式化 --> <property name="hibernate.format_sql">true <!-- 映射文件...