zoukankan      html  css  js  c++  java
  • 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();//游离状态
            }

     从运行结果可以看出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();//游离状态
            }

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

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

    (2)优点:

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

  • 相关阅读:
    最新免费网络加速器,游戏加速器下载_网络加速器永久免费版哪个好?
    HTML中特殊符号编码对照表,html特殊符号编码都有哪些?
    超融合架构在汽车行业前景及未来发展
    好用的前端开发小工具
    layui省市区三级联动城市选择
    企业超融合解决方案怎么做?超融合基础架构 超融合优势是什么?
    最新免费网络加速器
    什么是超融合?
    面临网络安全危机时需要思考的20个问题
    2019年超融合将飞速发展 三大趋势不容错过
  • 原文地址:https://www.cnblogs.com/zhai1997/p/11826637.html
Copyright © 2011-2022 走看看