Hibernate中文教程:入门到高级应用

需积分: 10 3 下载量 69 浏览量 更新于2024-08-01 收藏 1.79MB PDF 举报
Hibernate中文文档是一份详尽的教程和参考指南,针对3.5.1-Final版本,由Gavin King、Christian Bauer等知名开发者共同编撰。文档分为多个章节,旨在帮助读者理解和掌握Hibernate在关系型数据持久化中的使用。 第1章是基础教程,从创建第一个Hibernate应用程序开始,包括设置环境(如安装JDBC驱动,配置Hibernate properties文件),使用Maven构建项目,创建和操作实体类(如映射Person类),以及执行基本的CRUD操作(加载、存储对象)。通过这个部分,读者可以学习如何用Hibernate进行数据的增删改查。 第二部分着重于关联映射,讲解了单向和双向集合关联的映射方法,如何使它们正常工作,并展示了如何处理值类型集合。这部分内容对于理解对象关系映射(ORM)至关重要。 第3章介绍了"EventManager" web应用程序的开发过程,包括编写Servlet、处理用户请求与渲染、以及部署和测试,让读者了解如何将Hibernate应用到实际的Web开发环境中。 章节2阐述了Hibernate的体系结构,包括持久化对象的状态管理(如实例状态)、JMX集成、JCA支持、以及上下文相关的会话管理。这些内容有助于开发者理解Hibernate如何在复杂的系统架构中运作。 配置部分详细解释了如何通过编程方式配置Hibernate,包括SessionFactory的获取、JDBC连接的管理、可选配置属性的使用,如SQL方言、外连接抓取、二进制流处理、缓存策略、查询语言优化以及统计信息和日志设置。这些配置选项对于根据具体需求调整性能和功能至关重要。 文档还推荐了其他资源,如JPwH(可能是一本关于Hibernate应用设计的书)和Hibernate网站上的FAQ、第三方教程和示例,以及社区论坛,供读者进一步学习和解决问题。 这份文档是Hibernate 3.5.1-Final的权威指南,覆盖了从入门到高级使用的各个方面,无论是初学者还是经验丰富的开发人员,都能从中获益良多。通过阅读和实践,读者可以熟练掌握Hibernate这一强大的ORM框架,提升Java应用的数据管理能力。
2012-02-16 上传
依赖对象(Dependent objects) 组件(Component)是一个被包含的对象,在持久化的过程中,它被当作值类型,而并非一个实体的引用。在这篇文档中,组件这一术语指的是面向对象的合成概念(而并不是系统构架层次上的组件的概念)。举个例子, 你对人(Person)这个概念可以像下面这样来建模: public class Person { private java.util.Date birthday; private Name name; private String key; public String getKey() { return key; } private void setKey(String key) { this.key=key; } public java.util.Date getBirthday() { return birthday; } public void setBirthday(java.util.Date birthday) { this.birthday = birthday; } public Name getName() { return name; } public void setName(Name name) { this.name = name; } ...... ...... } public class Name { char initial; String first; String last; public String getFirst() { return first; } void setFirst(String first) { this.first = first; } public String getLast() { return last; } void setLast(String last) { this.last = last; } public char getInitial() { return initial; } void setInitial(char initial) { this.initial = initial; } } 在持久化的过程中,姓名(Name)可以作为人(Person)的一个组件。需要注意的是:你应该为姓名的持久化属性定义getter和setter方法,但是你不需要实现任何的接口或申明标识符字段。 以下是这个例子的Hibernate映射文件: <!-- class attribute optional --> 人员(Person)表中将包括pid, birthday, initial, first和 last等字段。 就像所有的值类型一样, 组件不支持共享引用。 换句话说,两个人可能重名,但是两个Person对象应该包含两个独立的Name对象,只不过这两个Name对象具有“同样”的值。 组件的值可以为空,其定义如下。 每当Hibernate重新加载一个包含组件的对象,如果该组件的所有字段为空,Hibernate将假定整个组件为空。 在大多数情况下,这样假定应该是没有问题的。 组件的属性可以是任意一种Hibernate类型(包括集合, 多对多关联, 以及其它组件等等)。嵌套组件不应该被当作一种特殊的应用(Nested components should not be