zoukankan      html  css  js  c++  java
  • Hibernate 性能优化之一级缓存

     1、一级缓存的生命周期
         一级缓存在session中存放,只要打开session,一级缓存就存在了,当session关闭的时候,一级缓存就不存在了


      2、一级缓存是依赖于谁存在的
          依赖于session存在的


      3、怎么样把数据存放到一级缓存中
          利用session.get、update、save

          * session.save方法
              *    *  可以把一个对象变成持久化状态的对象
              *    *  可以把一个对象放入到一级缓存中

          * session.update方法
             *    *  能把一个对象的状态转化成持久化状态
             *    *  能把一个对象存放到一级缓存中

           * session.get方法
             *     * 通过该方法得到的对象是一个持久化对象
             *     * 通过该方法可以把该对象存放到一级缓存中(session缓存中)


      4、怎么样从一级缓存中获取数据
          利用session.get方法可以获取数据

          
      5、怎么样把缓存中的数据同步到数据库
           只要是一个持久化状态的数据就在一级缓存中
           利用session.flush方法

          * session.flush方法
                 *   *  hibernate内部会去检查session缓存中的所有的对象
                 *   *  如果该对象是持久化对象,并且该对象的ID在数据库中有对应的记录,并且该对象的属性有变化,则会自动发出update语句,如果该对象的属性没有变化,则不发出update语句
                 *   *  检查持久化对象中是否有关联的对象,如果有关联的对象,并且设置了级联操作,这个时候会检查级联对象的id在数据库中有没有对应的记录,如果有,则发出update语句,如果没有,则发出insert语句
                 *   *  如果有维护关系的代码,则还会改变关系
                 *   *  全部检查完成以后,就发出sql语句,把一级缓存中的内容同步到数据库中


      6、怎么样把数据库的数据同步到一级缓存中
          session.reflesh方法   只能同步一个对象


      7、一级缓存的特性
         也叫session级别的缓存
         session中存放私有数据
         可以通过新建session和从当前线程中获取session保证数据的安全性


      8、从一级缓存中清楚某一个对象
         session.evcit方法  并且把一个对象从持久化状态转化成脱管状态


      9、清空一级缓存中所有的数据

      session.clear();

  • 相关阅读:
    大型网站技术架构读书笔记目录
    读书笔记1: 大型网站架构演化
    关于HTML5中的canvas标签的个个人理解
    javascript的部分功能实现
    简易计算机的做法
    关于C语言的学习和理解
    体验LESS CSS 框架
    在学习ps中的问题和理解。
    关于做登录页面
    css实现动画功能
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4222418.html
Copyright © 2011-2022 走看看