”一天一节“之hibernate的加载机制
在JDBC中通过SQL语句执行来加载数据来待使用,而在hibernate中提供了更多的加载方式来:
1、立即加载
描述:当加载实体对象的时候与其关联的数据将一次性的加载出来。 使用:这种方法在实际使用中当需要使用所加载对象的所有或者绝大多数数据时推荐使用,但如果只使用部分数据时这种方法就显得非常瓶颈,带来的性能问题也是显而易见的。要设置一个对象立即记载只需在对应的对象映射文件设置lazy = "false";
2、延迟加载
描述: 当加载实体对象的时候与其关联的集合或对象将不会立即记载出来,而是在真正使用到其集合或对象的时候才会进行加载。
使用: 当我们只是偶尔使用对象关联的对象或集合时,推荐采用这种方式,因为只有我们在真正使用的时候它才会去加载数据,避免了一些资源的浪费,具有一定的针对性,可以大大提高我们的性能,特别是加载关系较为繁杂的对象,当然如果我们是频繁的使用对象关联对象,采用这种方法反而会降低性能。要设置一个对象立即记载只需在对应的对象映射文件设置lazy = "true";
小结:对于以上两种方法不能说谁优谁劣,也不能说推荐用哪种,而是要看实际的应用,也就是实际的业务需求,要根据不同的需求来选择不同的加载方式,比如需要一次性使用对象的所有或大多数属性对象,则选择立即加载,如果只是偶尔使用对象所关联的数据则使用延迟加载。
3、预先加载
预先加载和立即加载差不多,也是在加载对象的时候同时一起将他关联的数据一起加载出来,但是这种加载方式是一种outer join的方式加载的,比如一个对象下关联了其他的一个对象,当立即加载时会执行两条SQL,而预先加载则利用了SQL的outer join这样就只生成一条SQL,提高了一定性能!
4、批量加载
顾名思义,批量加载就是在一次提交多个加载条件,一次性完成多个数据的加载,比如我们写两个根据用户ID查询用户的HQL,ID=1,ID=2,一般加载会产生两条SQL来加载,而如果设置批量加载,则只生成一条where ID = 1 or ID = 2 来加载,这种做法大大提高了性能,特别是对于大数据量的情况下,比如我要加载ID为1~100000的用户。我们可以采用批量加载来对立即加载处理达到一定的性能优化。它的配置也和简单,只需要在需要加载对象的映射文件里设置bath-size="一次加载数量"即可!
分享到:
相关推荐
主要介绍了Java的Hibernate框架中的缓存和延迟加载机制,Hibernate是注明的Java下SSH三大web开发框架之一,需要的朋友可以参考下
Hibernate延迟加载机制.zip
### Hibernate延迟加载详解 #### 一、什么是延迟加载?...总之,Hibernate的延迟加载机制是提高应用性能的重要手段之一。通过合理配置和使用这一机制,可以有效地优化应用程序的数据加载流程,提高用户体验。
关于多态加载,这是Hibernate提供的一种高级特性,允许我们根据父类引用加载不同子类的对象。除了`load`方法默认不支持多态加载(因为其懒加载机制),其他的加载方式如`get`、HQL和Criteria均在一定程度上支持多态...
Hibernate的延迟加载(Lazy Loading)和懒加载机制(Lazy Initialization)是优化ORM框架性能的重要策略。这个机制的主要目的是提高程序的效率,减少不必要的数据库交互,只在真正需要数据时才去加载它们。以下是对...
在实际运行中,当我们通过`session.get(Person.class, 1)`获取一个`Person`对象时,如果没有明确地访问`addresses`,Hibernate只会加载`Person`的基本信息,而不会加载与之关联的`Address`集合。在调试模式下,我们...
在理解Hibernate的延迟加载机制之前,我们首先需要了解什么是延迟加载。延迟加载(Lazy Loading)是一种设计模式,其核心思想是在真正需要数据时才加载数据,而不是一开始就加载所有数据。这种策略能够有效地减少...
**标题:“Hibernate之数据加载方式”** 在Java的持久化框架中,Hibernate是一个非常重要的工具,它简化了数据库操作,提供了对象关系映射(ORM)的功能。本篇将深入探讨Hibernate的数据加载方式,帮助开发者更好地...
集合属性的延迟加载是延迟加载中最常见的应用场景之一。当一个实体拥有大量的关联对象时,如果在初始化实体时也同时初始化这些关联对象,将会导致性能瓶颈。因此,延迟加载提供了一种解决方案:只在真正需要时加载...
悲观锁是一种预防并发访问的机制,Hibernate 通过对数据库的锁定来实现。悲观锁假定任何时刻存取数据时,都可能有另一个客户也正在存取同一笔数据,因此对数据采取了数据库层次的锁定状态,依靠数据库提供的锁机制来...
详细介绍hibernate延迟加载,对hibernate初学者有一定的帮助
当一个实体的某个属性是一个关联的集合,如一对多的关系,Hibernate默认会采用延迟加载机制。这意味着在初始加载实体时,并不会立即查询关联的集合,而是在第一次尝试访问这个集合时才发起SQL查询。这种设计可以避免...
通过上述解析,可以看出Hibernate的延迟加载机制在多个层面提供了一种智能的性能优化策略。无论是对于单个实体还是集合,延迟加载都能确保只有在真正需要时才执行昂贵的数据库操作,极大地提升了数据加载效率和应用...
Hibernate缓存机制.txt
【标题】中的“2017黑马程序员第一天Hibernate讲义,笔记,源码”表明这是一个关于Hibernate框架的初学者教程,由知名的IT培训机构黑马程序员在2017年制作,内容可能包括讲义、学习笔记以及相关的源代码示例。...
## Hibernate缓存机制详解 ### 一、缓存分类与管理 Hibernate提供了两种主要的缓存类型:一级缓存和二级缓存。 #### 1. 一级缓存 一级缓存也称为Session缓存,它在同一个Session中对数据的多次读取操作只需要一...
标题中的“Hibernate lazy加载FOR Connection”指的是Hibernate框架中的一种特性,即懒加载(Lazy Loading)。在Hibernate中,懒加载是一种优化策略,它推迟对关联对象的加载,直到真正需要使用这些对象时才进行加载...
**描述:**这篇博客主要探讨了Hibernate框架中的缓存机制,包括一级缓存和二级缓存的概念、工作原理以及如何在实际开发中应用。 **标签:“源码 工具”** **知识点详解:** **1. Hibernate概述:** Hibernate是一...
懒加载是一种延迟加载机制,它使得关联对象在初始加载时不被加载,直到它们被实际访问时。例如,如果我们有一个`User`类,它有一个`List<Address>`,默认情况下,`Address`会在第一次访问时才加载。这通过代理对象...