专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

Hibernate(一级缓存、快照)

缓存(cache),原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。——百度百科

在Hibernate中引入缓存的目的是提高操作数据库的目的。

1、Hibernate的一级缓存

(1)Hibernate的一级缓存:

 public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            Student student=new Student();//瞬时态
            Student student1=session.get(Student.class,937221508);
            Student student2=session.get(Student.class,937221508);
            Student student3=session.get(Student.class,937221508);
            transaction.commit();
            session.close();//游离状态
        }

96_1.png

从运行结果可以看出Hibernate只执行了一次查询操作,因为在执行Student student1=session.get(Student.class,937221508);语句的时候会先查询一级缓存,因为一级缓存中没有需要查询的数据,因此才会执行Select操作,当第二次执行Student student2=session.get(Student.class,937221508);的时候,因为一级缓存中有相同的数据(查询相同主键的数据),会直接返回查询结果,不会再执行Select操作。

(2)好处:

Hibernate的一级缓存减少了对数据库的访问,提高了查询效率。

2、Hibernate快照

(1)Hibernate快照

public static void testSel() {
            Session session = HibernateUtils.openSession();
            Transaction transaction = session.beginTransaction();
            Student student=new Student();//瞬时态
            Student student1=session.get(Student.class,937221508);
            student1.setSname("张可可");
            student1.setSname("李明");
            student1.setSname("平靖");
            transaction.commit();
            session.close();//游离状态
        }

执行以上代码:即将学生的名字修改三次,其实和学生名字的初始值相同。

96_2.png

按照一般的想法,需要执行一次Select操作和三次Update操作,但是事实上只执行了一次Select语句。因为Hibernate将get方法获得的对象组装成了两个对象,一个放入缓存一个放入快照,程序修改的是缓存中的对象,然后hibernate比对比对缓存中的对象和快照,如果有差异则同步到数据库中,否则,不进行同步。

(2)优点:

减少不必要的修改语句的发送

文章永久链接:https://tech.souyunku.com/23161

未经允许不得转载:搜云库技术团队 » Hibernate(一级缓存、快照)

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们