我看书的方式一向是"读书不求甚解", 先大概扫一眼都有些什么东西, 给自己留个大概印象, 然后再慢慢钻进去看.
做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源码 传智播客hibernate源码
hibernate hibernate源码 官方源码
hibernate源码分析一[启动过程]hibernate源码分析一[启动过程]hibernate源码分析一[启动过程]hibernate源码分析一[启动过程]hibernate源码分析一[启动过程]hibernate源码分析一[启动过程]
Hibernate源码,包含hibernate-core、hibernate-ehcache、hibernate-c3p0、hibernate-osgi、hibernate-spatial等模块
Hibernate源码(hibernate-orm-main.zip)Source Code: Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。 它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。
精通Hibernate源码.rar
hibernate 源码直接导入Eclipse
把hibernate的所有使用都有 包括一对一 一对多 和多对多 直接使用
Hibernate是一种Java语言下的对象关系映射解决方案。 它是使用GNU宽通用公共许可证发行的自由、开源的软件。它为面向对象的领域模型到传统的关系型数据库的映射,提供了一个使用方便的框架。Hibernate也是目前Java...
三种查询方式跟踪Hibernate源码 学习源码必备
Hibernate源码分析文档,解析Hibernate执行流程
精通hibernate源码chapter5 java对象持久化技术详解
hibernate-release-4.1.4.Final源码,是学习和使用hibernate的好资源,领略大师的编码规则,掌握高超的编码技术,值得学习!hibernate开发人员必备资料!
hibernate tools源码运行修改需要的jar 源码下载地址是http://anonsvn.jboss.org/repos/hibernate/tags/TOOLS_3_2_4_GA/
这段时间在学hibernate,在网上找了份hibernate的源码学学