我看书的方式一向是"读书不求甚解", 先大概扫一眼都有些什么东西, 给自己留个大概印象, 然后再慢慢钻进去看.
做Hibernate一般是先接触配置文件(我总觉得用工具生成的配置文件不如自己写的有底),
于是过来一遍org.hibernate.mapping包, 里面是一大堆对应于配置文件的元素的定义类, 每个类的名称, 含义, 注释,
清清楚楚, 结构分明, 果然是大师手笔, 非常的"面向对象"......
好了, 按照常见的编程路线走吧. 用Hibernate的代码一般是这样写的:
new Configuration().configure().buildSessionFactory().openSession()
行, 就按照这个方式看进去.
Configuration: 顾名思义, 加载配置, 把hibernate.cfg.xml, xxx.hbm.xml以及hibernate.properties都加载起来. 加载过程非常复杂.
Configuration.buildSessionFactory: 也是非常复杂的方法,
基本上你在hibernate能见到的特性都涉及到了, 什么transaction, cache, mapping, id generator,
session context, ...数不胜数. 其中还有一步SecondPassCompile, 就是在hibernate.cfg.xml,
xxx.hbm.xml完毕后检查依赖关系, ID&HQL&sQL合法性等等的, 巨复杂 - -!!!
难怪Gavin King在他的书中写着"创建一个SessionFactory的代价非常昂贵"
Hibernate为每一个类生成一个ClassPersister, 这样做的好处是职责分明,
每个ClassPersister负责自己对应的类的持久化操作. 漂亮! 在创建SessionFactory的过程中,
Hibernate在所有的ClassPersister对象都建立后,执行一个postInitilize的动作, 这是一个大动作,
期间会生成对应的类的select SQL, 即后来的session.load(Class,Serilizable),
session.get等方法都会用到, 与我一开始想到有差别, 本以为这些SQL是在调用session.load等方法的时候才会生成.
Gavin King还提到Hibernate3 is a rewrite of Hibernate2 base on event
mechanism, 大致就是这个意思, 所以在初始化SessionFactory过程中注册了大堆的event listeners.
源代码里面有大量的call back, 精心设计的接口和类层次, 可以学到非常多东西.
另外, 人家写注释的方式也可以学习一下: 简洁, 直接的描述某个类/方法做的事情, 职责.
分享到:
相关推荐
hibernate源码
- 导入源码:将解压后的Hibernate源码文件夹中的所有jar文件添加到项目的lib目录下,并右键点击项目 -> Build Path -> Configure Build Path -> Libraries -> Add Jars 或 Add External Jars 添加这些依赖。...
Hibernate源码(hibernate-orm-main.zip)Source Code: Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。 它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
标题"hibernate源码 直接使用"表明我们将探讨的是Hibernate框架的源代码,以及如何直接在项目中应用这些源代码。Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了数据库操作,将数据库交互转化为面向...
《Hibernate源码解析(一)》 在Java开发领域,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。深入理解Hibernate的源码,不仅可以帮助开发者更好地运用该工具,还能提升对Java编程和...
Hibernate源码分析有助于深入理解其内部机制,提高开发效率,优化数据库操作性能。 1. **Hibernate核心模块(hibernate-core)** Hibernate的核心模块包含了ORM框架的主要功能,如实体管理、查询语言(HQL)、事件...
标题"传智播客hibernate源码"暗示了这是一个关于Hibernate框架的源代码学习资源,可能包含了对Hibernate框架内部机制的深入解析,以及如何在实际项目中应用Hibernate的相关示例。 描述中的内容重复,进一步确认了这...
《精通Hibernate源码》 Hibernate,作为Java领域中的一款强大且广泛应用的对象关系映射(ORM)框架,极大地简化了数据库操作。深入理解Hibernate的源码,对于提升开发效率、优化性能以及解决实际问题具有重大意义。...
深入理解Hibernate源码有助于开发者更好地掌握其工作原理,从而提高开发效率,解决实际问题。以下是对Hibernate源码相关知识点的详细阐述: 1. **对象关系映射(ORM)**:ORM是将数据库中的数据与Java对象进行映射...
在Hibernate源码的学习过程中,我们可以深入理解ORM的工作原理,提高我们的Java开发技能,并且能够更好地优化数据库操作。 一、Hibernate核心组件 1. Configuration:配置对象,负责读取hibernate.cfg.xml文件,...
《Hibernate源码解析(三)》这篇文章主要探讨了Hibernate框架的深入源码解析,这是对 Hibernate 框架理解的进一步深化。在本篇中,作者聚焦于几个关键的组件和机制,帮助读者理解 Hibernate 如何高效地管理和操作...
《深入理解Hibernate源码》 Hibernate,作为Java领域中的一款著名持久化框架,极大地简化了数据库操作,使得开发者能够更加专注于业务逻辑。本资料主要基于“传智播客hibernate源码.rar”进行深入剖析,旨在帮助你...
总之,深入学习Struts、Spring和Hibernate的源码,对于提升Java开发者的专业水平具有重要意义。这不仅涉及到了Web开发的基本原理,还涵盖了软件设计、框架构建和数据库交互等多方面的知识。通过这种方式,开发者可以...
**Hibernate源码分析** Hibernate,一个著名的开源Java对象关系映射(ORM)框架,通过将Java对象和数据库表之间的映射关系自动化,极大地简化了数据访问层的开发工作。本篇将深入探讨Hibernate的源码,揭示其执行...
要运行或修改Hibernate Tools的源码,首先需要确保你拥有所有必要的依赖库,这些依赖通常以jar文件的形式存在。以下是一些关键的知识点: 1. **Hibernate ORM框架**:Hibernate是一个开源的对象关系映射(ORM)框架...