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缓存(查询)(必须用)----------》二级缓存(查询)----------》最后在到数据库中去查询查询,多次的将依次被放入到二级缓存 一级缓存

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

  • 相关阅读:
    Django之模板系统
    Django之ORM操作
    Django之路由分配系统
    基于模态对话框 学生管理系统
    初识Django
    ORM框架之SQLALchemy
    MySQL查询性能调优化
    MySQL练习题
    MySQL自带功能介绍
    javascript时间戳和日期字符串相互转换
  • 原文地址:https://www.cnblogs.com/zhongyimeng/p/9750001.html
Copyright © 2011-2022 走看看