`
san586
  • 浏览: 134751 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

一级缓存

阅读更多
    hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但是session关闭的时候,一级缓存就失效了。
    一级缓存很短和session的生命周期一致,一级缓存也叫session级的缓存或事务级缓存
session间不能共享一级缓存的数据,因为它会伴随session的生命周期存在和消亡。

哪些方法支持一级缓存:
get(),save(),load(),iterate(查询实体对象)

一级缓存只对实体对象起作用,HQL 不支持缓存机制。

如何管理一级缓存:

session.clear()清除所有对象,session.evict()清除某一个对象。
如何避免一次性大量的实体数据入库导致内存溢出
先flush,再clear
for (int i=0; i<1000; i++) {   
            Student student = new Student();   
            student.setName("s_" + i);   
            session.save(student);   
            //每20条数据就强制session将数据持久化   
            //同时清除缓存,避免大量数据造成内存溢出   
            if ( i % 20 == 0) {   
                session.flush();   
                session.clear();   
            }   
        }  

如果数据量特别大,考虑采用jdbc实现(请参考ss3ex批量更新),如果jdbc也不能满足要求可以考虑采用数据本身的特定导入工具。
分享到:
评论

相关推荐

    深入理解MyBatis中的一级缓存与二级缓存

    "深入理解MyBatis中的一级缓存与二级缓存" MyBatis是一种流行的持久层框架,它提供了缓存机制来提高应用程序的性能。在MyBatis中,有两种类型的缓存:一级缓存和二级缓存。下面我们将深入了解MyBatis中的一级缓存和...

    Hibernat一级缓存(源码)

    在 Hibernate 中,一级缓存是默认开启的一种缓存机制,对于提高应用程序性能有着重要作用。一级缓存位于 Session 对象中,是每个 Session 的私有缓存,它存储了从数据库中读取的对象实例。 一级缓存的工作原理: 1....

    hibernate一级缓存和二级缓存的区别与联系

    缓存机制分为一级缓存和二级缓存,两者都有助于减少对物理数据库的直接访问,从而提高应用程序的运行效率。 一级缓存是 Hibernate 内置的,默认开启,与 Session 对象关联。它是一个事务范围的缓存,也就是说,每个...

    mybatis一级缓存和二级缓存简单示例

    一级缓存默认是开启的,但需要注意的是,当 SqlSession 提交事务或者关闭时,一级缓存会被清空。 ### 二级缓存 二级缓存是 Mapper 级别的缓存,可以跨 SqlSession 工作。它将数据存储在一个全局区域,多个 ...

    hibernate一级缓存、二级缓存和查询缓存

    **hibernate一级缓存、二级缓存和查询缓存** 在Java的持久化框架Hibernate中,缓存机制是提高应用程序性能的关键要素。缓存能够减少数据库的访问次数,提高数据读取速度,并且在一定程度上降低了系统的负载。本文将...

    hibernate的一级缓存和二级缓存

    《深入理解Hibernate的一级缓存与二级缓存》 Hibernate作为一款强大的ORM框架,其缓存机制是优化数据库操作性能的关键之一。缓存主要分为一级缓存和二级缓存,它们各自承担着不同的职责,共同提升了数据访问的效率...

    Hibernate一级缓存和二级缓存

    标题“Hibernate一级缓存和二级缓存”指的是Hibernate框架中的两种缓存机制,它们是提高数据访问性能的关键要素。一级缓存是Session级别的,而二级缓存是SessionFactory级别的,两者在数据库操作中起到了重要的作用...

    Hibernate一级缓存、二级缓存以及查询缓存实例

    本文将深入探讨Hibernate的一级缓存、二级缓存以及查询缓存,通过具体的实例来阐述它们的工作原理和使用方法。 首先,我们从一级缓存开始。一级缓存是Hibernate默认提供的缓存,它是每个Session级别的,也被称为...

    hibernate一级缓存

    **hibernate一级缓存详解** 在Java的持久化框架Hibernate中,一级缓存是其核心特性之一,它为提高数据库操作效率、减少对数据库的访问提供了重要支持。一级缓存,也称为session缓存,是每个Hibernate Session内部...

    day37 05-HIbernate二级缓存:一级缓存更新同步到二级缓存及二级缓存配置文件

    一级缓存是Hibernate默认提供的缓存,每个SessionFactory实例都有一个一级缓存。当对象被加载到内存中时,它们会被存储在一级缓存中。一级缓存是事务级的,意味着它只存在于当前事务内,一旦事务提交或回滚,一级...

    Hibernate性能优化:一级缓存

    本文将深入探讨Hibernate性能优化中的一个重要概念——一级缓存,并结合给出的压缩包文件“hibernate_cache_level1”,来详细解析一级缓存的工作原理及其优化策略。 一级缓存是Hibernate内置的一种缓存机制,它存在...

    Hibernate 一级缓存和二级缓存的区别

    Hibernate 一级缓存和二级缓存的区别

    MyBatis缓存(一级缓存、二级缓存)

    缓存是MyBatis性能优化的重要手段,分为一级缓存和二级缓存。在这篇文章中,我们将深入探讨这两个级别的缓存机制及其工作原理。 **一级缓存** 一级缓存是SqlSession级别的缓存,也称为局部缓存。当你执行一个查询...

    一级缓存和二级缓存

    一级缓存(L1 Cache)和二级缓存(L2 Cache)是CPU内部的重要组成部分,它们位于主内存和CPU核心之间,扮演着数据快速访问的角色。本文将深入探讨这两个级别的缓存系统,以及它们在优化计算性能中的作用。 首先,一...

    Redis用作二级缓存

    在Mybatis中,一级缓存默认存在于SqlSession级别,当一个SqlSession打开时,它会为执行的每个查询存储结果,如果同一个SqlSession中再次执行相同的查询,Mybatis会首先从一级缓存中查找数据。然而,一级缓存的范围...

    一级缓存、二级缓存、三级缓存区别终稿.pdf

    缓存是计算机处理器性能优化的关键组成部分,主要分为一级缓存(L1 Cache)、二级缓存(L2 Cache)和三级缓存(L3 Cache)。这些缓存层级的存在是为了减少CPU访问主内存的时间,提高计算效率。 一级缓存是离CPU最近...

    Hibernate一级缓存和二级缓存【内附二级缓存数据存储结构】

    首先,一级缓存是Hibernate默认提供的缓存,每个Session都有一个独立的一级缓存。当我们在操作数据库时,例如查询或更新记录,这些操作实际上是在与一级缓存交互。一级缓存的作用在于减少对数据库的直接访问,提高...

    Hibernate缓存策略(一级缓存、二级缓存).docx

    然而,一级缓存的生命周期与Session绑定,当Session关闭后,一级缓存中的数据也会被丢弃。如果在关闭Session后重新打开并尝试加载相同对象,Hibernate将不再能从一级缓存中获取,而是重新执行SQL查询,这就是第二个...

    Hibernatehibernate一级缓存.pdf

    在Java的持久化框架Hibernate中,一级缓存是其核心特性之一,它是Session级别的缓存,也称为事务级缓存。一级缓存的作用是提高数据访问效率,减少对数据库的直接访问,从而提升应用程序的性能。当我们在Hibernate中...

    模拟hibernate中一级缓存

    Hibernate的一级缓存机制是其性能优化的关键特性之一。本文将深入探讨一级缓存的概念、工作原理,并通过一个简单的案例来模拟其在实际应用中的行为。 首先,我们需要理解什么是Hibernate的一级缓存。一级缓存,也...

Global site tag (gtag.js) - Google Analytics