hibernate的获取session的两方法比较,和通过id获取对象的比较,一级缓存二级缓存
opensession与currentsession的联系与区别
在同一个线程中opensession的session是不一样的,而currentsession获取的session是一样的,这就保证了线程的安全性。当然想要后者的session需要在配置文件中手动配置,另外我们可以写一个工具类来获得后者的session。
get vs load
如果查询不到数据,get会会返回null但是不会报错 若果load查询不到数据,则会报错
get立即向db发送请求 ,如果你使用的是load查询数据,即使查询到对象,返回的是一个代理对象如果没有使用查询结果,他不会真的向数据库发请求,当程序员使用查询结果时才真的发出select,这个现象称为懒加载。
一级缓存/二级缓存
一级:sessionFactory二级:内存或者文件中:
例如load--------------》session缓存(查询)(必须用)----------》二级缓存(查询)----------》最后在到数据库中去查询查询,多次的将依次被放入到二级缓存 一级缓存
这样做减小了对数据库的访问,提高了工程运行的效率。
hibernate的获取session的两方法比较,和通过id获取对象的比较,一级缓存二级缓存的更多相关文章
- hibernate框架学习第六天:QBC、分页查询、投影、数据加载策略、二级缓存
QBC查询 1.简单查询 Criteria c = s.createCriteria(TeacherModel.class); 2.获取查询结果 多条:list 单挑:uniqueResult 3.分 ...
- Hibernate 再接触 一级缓存 二级缓存 查询缓存
缓存 就是把本来应该放在硬盘里的东西放在内存里 将来存内存里读 一级缓存: session缓存 二级缓存: sessionFactory级别的 (适合经常访问,数据量有限,改动不大) 很多的se ...
- 一级缓存二级缓存(hibernate)
缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能.缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事 ...
- hibernate的一级和二级缓存
一级缓存就是Session级别的缓存,close后就没了. 二级缓存就是SessionFactory级别的缓存,全局缓存,要配置其他插件. 什么样的数据适合存放到第二级缓存中? 1.很少被修改的数据 ...
- 获取Session和request方法
action中的几种写法 //第一种很少用public class LoginAction1 extends ActionSupport { private Map request; ...
- Request获取Session的两种方式
1.无请求参数 public HttpSession getSession() 获取当前request关联的session,如果当前request没有session,创建一个session. 2.有请 ...
- Oracle获取session的IP方法
方法1 创建触发器: create orreplace trigger login_on alfterlogon on database begin dbms_application_info ...
- Spring MVC 中获取session的几种方法
Spring MVC 中使用session是一种常见的操作,但是大家上网搜索一下可以看到获取session的方式方法五花八门,最近,自己终结了一下,将获取session的方法记录下来,以便大家共同学习 ...
- hibernate中获得session的方式
his.getsession实际上是调用了父类中的方法获得session.使用spring管理hibernate的SessionFactory的时候,这个方法会从session池中拿出一session ...
随机推荐
- JVM之运行时数据区
Java虚拟机运行时数据区包括PC寄存器.Java虚拟机栈.Java堆.方法区.本地方法栈.运行时常量池六个部分. 1. PC寄存器 PC寄存器(又叫程序计数器,Program Counter Reg ...
- STL的一些技巧函数使用
1.emplace() 函数和 emplace_back() 函数 C++11的STL中新增加了emplace() 函数和 emplace_back() 函数,用来实现insert() 函数和 pus ...
- Bash读取/etc/passwd的特殊技巧
在twitter上看到的,记录一下: 可以bypass基于正则的规则,这里还可以引申出其他的bypass方法,
- requirejs——define——普通模块
一.普通模块可能包含的内容: 一个模块对应着一个js文件,由于模块可能包含着以下三种内容:模块名.依赖模块.返回给其他模块使用的参数:因此js文件根据包含内容的不同而写法不同. 一.传统的js脚本文件 ...
- 定时器Quartz ClassNotFound org.springframework.scheduling.quartz.SchedulerFactoryBean
转自:https://blog.csdn.net/truong/article/details/37508003 没有添加spring-context-support-3.2.4.RELEASE.ja ...
- elastic(10) 基本查询
# 指定index名以及type名的搜索 GET /library/books/_search?q=title:elasticsearch # 指定index名没有type名的搜索 GET /libr ...
- 每天一个Linux命令 - 【find】
命令:find 用途:查找文件并执行指令的操作 [语法]:find [路径] [选项] [参数] [功能介绍]:find命令在指定的目录下查找文件.find命令还能够对查找到的文件执行的指定的操作,通 ...
- Python基础学习四 文件操作(二)
####读取文件#### with open('goods_info.txt', 'r', encoding='utf-8') as f: f.seek(0) # 注意指针位置 goods_info ...
- latex中如何引用公式
在使用latex编辑文章时,经常会需要引用公式.图表等等. 如果我们人为地对这些公式.图表进行编号1-2-3-4,然后在文章中使用Eq(1)-Eq(2)-Eq(3)-Eq(4)去引用这些公式,固然是可 ...
- Eclipse下使用Subversion(SVN工具)
本文目的 让未使用过版本控制器软件或者未使用过subversion软件的人员尽快上手. subversion的使用技巧很多,这里只总结了最小使用集,即主要的基本功能,能够用来应付日常工作. 因此不涉及 ...