`

Hibernate源码研究碎得(1)

阅读更多

1, Collections.unmodifiableMap( new HashMap(0) );

          看到了这样的语句,不知道个unmodifiableMap在实际中有什么用?

         是说整个执行过程中,某一个变量所指向的Instance没有是不可modifiable的吧?而不是这个Map中的具体内容. 这样再结合应用的上下文就通了.

 

2,Hibernate中有个SecondPass的概念,这个是干啥用的?

      看源码时,它的实现类中有这样的关系:

           接口SecondPass有两个直接实现类:

                      CollectionSecondPass和ManyToOneSecondPass,另还有一个继承于此接口的子接口QuerySecondPass

                        CollectionSecondPass在HbmBinder类中又定义了一个static的类名为HbmBinder.CollectionSecondPass,   这个静态类在HbmBinder中又分别有三个子类(也是静态的)它们是IdentifierCollectionSecondPass,ListSecondPass,MapSecondPass.

 

                        ManyToOneSecondPass这个类也是静态的,它也是在HbmBinder类中定义的内部类.

                  QuerySecondPass接口有两个实现类ResultSetMappingSecondPass和    NamedSQLQuerySecondPass,这两个类都ResultSetMappingBinder的子类.

 

 

3,Hibernate N步曲:

    1>,new Configuration(): 找hibernate.properties文件,初始化所有Listeners,classes,imports,secondPasses....

    2>,configure(): 找到hibernate.hbm.xml文件,将其中的元素解析出来放到Configuration类中的相应的properties里,据cfg.xml文件中指定的hbm.xml名称找到并解析XXX.hbm.xml文件,将配置放到Configuration类中相应的属性中,如classes,imports,collections,tables,sqlFunctions,namedQueries....

    3>,buildSessionFactory:据第二步中生成的Configurations类中的相应属性生成CRUD相关的Sql语句,identifierGenerators,entityPersisters,collectionPersisters... 这一步是Mapping路上实质性的一步.

    4>,有了第三步的准备,就可以调用Session接口中面向对象的CRUD操作了.

28
6
分享到:
评论

相关推荐

    hibernate源码包

    hibernate源码

    hibernate源码 直接使用

    标题"hibernate源码 直接使用"表明我们将探讨的是Hibernate框架的源代码,以及如何直接在项目中应用这些源代码。Hibernate是一个流行的Java ORM(对象关系映射)框架,它简化了数据库操作,将数据库交互转化为面向...

    hibernate 源码直接导入Eclipse

    接下来,我们将深入探讨Hibernate的核心概念、如何在Eclipse中导入源码以及如何利用这些源码进行学习。 1. Hibernate 核心概念: - ORM(Object-Relational Mapping):ORM是将数据库中的关系数据映射为Java对象的...

    Hibernate源码

    在深入研究Hibernate源码时,可以关注以下关键点: - **实体管理**:了解实体生命周期(瞬态、持久化、托管和脱管),以及状态转换的过程。 - **HQL和Criteria API**:学习如何构建面向对象的查询,以及它们与原生...

    Hibernate源码(hibernate-orm-main.zip)

    Hibernate源码(hibernate-orm-main.zip)Source Code: Hibernate ORM 是一个为应用程序、库和框架提供对象/关系映射 (ORM) 支持的库。 它还提供了 JPA 规范的实现,这是 ORM 的标准 Java 规范。

    Hibernate源码解析(一)

    1. Hibernate概述 Hibernate是由 Gavin King 创建的一个开源项目,它提供了一种在Java应用中持久化对象到关系数据库的解决方案。通过ORM,Hibernate将对象模型与关系数据库模型进行映射,使得开发人员可以使用面向...

    传智播客hibernate源码

    **标题与描述解析** 标题"传智播客hibernate源码"暗示了这是一个关于Hibernate框架...通过研究这些文件,学习者可以深入了解Hibernate的工作原理,提升数据库操作的技能,并了解如何在实际项目中有效地使用Hibernate。

    精通Hibernate源码.rar

    《精通Hibernate源码》 ...通过深入研究Hibernate源码,我们可以更好地理解ORM的工作原理,从而在项目实践中更好地运用Hibernate,提高代码质量和开发效率。同时,掌握源码也有助于定制化开发,满足特定业务需求。

    hibernate源码

    《深入剖析Hibernate源码》 Hibernate,作为一款广泛使用的开源对象关系映射(ORM)框架,为...通过对源码的深入研究,我们可以更好地利用Hibernate提供的功能,优化我们的应用,同时也能为自己的项目设计提供灵感。

    hibernate源码的学习

    Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,而无需直接编写SQL语句。...通过对"hibernate-one2many"的分析,我们可以深入研究和实践一对一和一对多关联关系的配置和操作。

    Hibernate源码解析(二)

    在本篇《Hibernate源码解析(二)》中,我们将深入探讨Hibernate这一强大的Java对象关系映射(ORM)框架的内部工作原理。这篇博客旨在帮助开发者更好地理解Hibernate的核心机制,以便于更高效地利用它来处理数据库...

    Struts,Spring,Hibernate源码包

    总之,深入学习Struts、Spring和Hibernate的源码,对于提升Java开发者的专业水平具有重要意义。这不仅涉及到了Web开发的基本原理,还涵盖了软件设计、框架构建和数据库交互等多方面的知识。通过这种方式,开发者可以...

    Hibernate源码解析(三)

    《Hibernate源码解析(三)》这篇文章主要探讨了Hibernate框架的深入源码解析,这是对 Hibernate 框架理解的进一步深化。在本篇中,作者聚焦于几个关键的组件和机制,帮助读者理解 Hibernate 如何高效地管理和操作...

    hibernate源码release-4.1.4.Final版

    《深入剖析Hibernate 4.1.4.Final源码》 Hibernate,作为一款著名的Java对象关系映射(ORM)框架,极大地简化了Java开发者在数据库操作中的工作。它通过提供对象化的数据访问接口,使得开发者可以更加专注于业务...

    hibernate tools源码运行或修改需要的jar

    1. **Hibernate ORM框架**:Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者用面向对象的方式操作数据库,将Java对象与数据库表进行映射,简化数据库操作。 2. **Hibernate Tools**:作为Hibernate的...

Global site tag (gtag.js) - Google Analytics