zoukankan      html  css  js  c++  java
  • hibernate的获取session的两方法比较,和通过id获取对象的比较,一级缓存二级缓存

    opensession与currentsession的联系与区别

    在同一个线程中opensession的session是不一样的,而currentsession获取的session是一样的,这就保证了线程的安全性。当然想要后者的session需要在配置文件中手动配置,另外我们可以写一个工具类来获得后者的session。

    get vs load

    如果查询不到数据,get会会返回null但是不会报错 若果load查询不到数据,则会报错

    get立即向db发送请求 ,如果你使用的是load查询数据,即使查询到对象,返回的是一个代理对象如果没有使用查询结果,他不会真的向数据库发请求,当程序员使用查询结果时才真的发出select,这个现象称为懒加载。

    一级缓存/二级缓存

    一级:sessionFactory二级:内存或者文件中:
    例如load--------------》session缓存(查询)(必须用)----------》二级缓存(查询)----------》最后在到数据库中去查询查询,多次的将依次被放入到二级缓存 一级缓存

    这样做减小了对数据库的访问,提高了工程运行的效率。

  • 相关阅读:
    操作系统进程调度策略
    runnable & callable
    leetcode 124 二叉树中的最大路径和
    leetcode 24 两两交换链表中的节点
    leetcode 93 复原IP地址
    C++ 11 move
    leetcode 64 最小路径和
    leetcode 1143 最长公共子序列
    leetcode 528 按权重随机选择
    数据挖掘面试题(1)
  • 原文地址:https://www.cnblogs.com/zhongyimeng/p/9750001.html
Copyright © 2011-2022 走看看