夜光带你走进Hibernate(四)
夜光序言:
孤独放生春风
窗外全是寂寞
拍拍肩头前尘
奔跑依旧继续。
正文:
1. hibernate对象状态
session.save(对象);
- 临时状态
1 . 直接new出来的对象
2. 不处于session的管理(即没有与任何一个session关联)
3. 对象在数据库中没有对应的记录
Employee e = new Employee();
e.setId(2); 只要主键在数据库中存在,就说这个对象在数据库中有对应记录
在数据库中叫主键~~么么
OID, object identified 对象的唯一标识 (对应数据库中的主键)
- 持久化状态
1. 处于session的管理范围
当执行session的方法如:save/update/saveOrUpdate/get/load
对象就会自动转变为持久化状态
2. 在数据库中有对应的记录
3. 处于持久化状态的对象,当对对象属性进行更改的时候,提交事务更改会反映到数据库中
- 游离状态
1. 对象不处于session的管理范围; 通常指session关闭后对象的状态
2. 对象在数据库中有对应的记录
2. Session缓存
概念:
Session缓存,也叫做一级缓存
当执行session的相关方法,如: save()/update()/get()/load()等方法的时候,对象会自动放入一级缓存中。
当Session关闭后,一级缓存内容失效
特点:
1)缓存有效范围,只在当前session范围内有效~~,帅气~缓存时间很短、作用范围小
2)一级缓存,可以在短时间内多次操作数据库的时候,才会明显提升效率
一级缓存的结构:Ma<主键,对象>
3)在提交事务时候,
Hibernate会同步缓存数据到数据库中,会对比缓存数据与数据库数据是否一致,如果不一致,才提交更改到数据库(生成update)
4) hibernate提供的一级缓存有hibernate自身维护,如果想操作一级缓存内容,必须通过hibernate提供的方法;
session.flush(); 手动让让一级缓存内容与数据库同步
session.evict(emp1); 清空一级缓存中对象: 清除指定的对象
session.clear(); 清空一级缓存中对象: 清除所有的对象
list()与iterator()查询区别
list: (通常使用频率较高)
Query接口定义的list查询方法,
一次查询所有满足需要的数据
iterator:
Query接口定义的iterator查询方法,
1. 先查询所有满足条件记录的主键 (查询1次)
2. 再根据每一个id,进行主键查询,有多少记录,查询多少次 (查询n次)
3. iterator查询: N + 1
4. iterator查询,迭代数据的时候,只有用到数据的时候,才会查找数据库(懒加载)
区别:
1. 查询数据方式不同: 查询全部与查询N+1
2. 一级缓存
List查询,查询的结果会放入一级缓存,但不会从一级缓存中获取
Iteraotro查询,会放入一级缓存,同时也会从一级缓存中获取
本文原文地址:https://blog.csdn.net/weixin_41987706/article/details/89239973
夜光带你走进Hibernate(四)相关推荐
- 设计模式六大原则:迪米特原则-带你走进梦幻西游(四)
转载请标明:http://blog.csdn.net/liulongling/article/details/51332685 面向对象其它六大原则 单一职责原则-带你走梦幻西游(一) 依赖倒置原则( ...
- 夜光 带你走进设计模式(四)
夜光序言: 柔情似水如梦,昏沉迷惘度年. 红尘作伴如你,萧瑟千里独行. 正文:单例模式 嘿哈~~:单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一.这种类型的设计模式 ...
- 夜光带你走进 前端工程师(四十二 jS )
夜光序言: 孤高所以至高. 所谓真正的英雄就是一个人.因为孤高所以强大. 没有持有羁绊也就是说没有必须守护的东西.必须守护的东西换言之就是弱点. 因此没有弱点.没有必须守护的东西.和别人没有联系的人才 ...
- 夜光带你走进 微信小程序开发(四十二)擅长的领域
夜光序言: 世人笑我痴红尘,不过红尘恋伊人. 正文: 以道御术 / 以术识道 /*夜光: pages/g ...
- 夜光带你走进 前端工程师(四十 jS )
夜光序言: 她只有我了 我若是不等她 谁会等她 我若是不守护她 谁会守护她 正文: 倒计时 <!DOCTYPE html> <html> <head lang=&quo ...
- 夜光带你走进 Java 成神之路--Spring(四十六)擅长的领域
夜光序言: 人生不要被过去所控制,决定你前行的,是未来; 人生不要被安逸所控制,决定你成功的,是奋斗; 人生不要被别人所控制,决定你命运的,是自己; 人生不要被金钱所控制,决定你幸福的,是知足; 人生 ...
- 夜光带你走进JavaScript(四十六)擅长的领域
夜光序言: 从一开始以为这个世界上只有自己,到明白自己的天赋其实只够做一个不错的普通人. 然后人就长大了 正文: 事件冒泡或事件捕获? 事件传递有两种方式:冒泡与捕获. 事件传递定义了元素事件触发的顺 ...
- 夜光带你走进 微信小程序开发(四十)擅长的领域
夜光序言: 赋予清风明月与你 相约少年游,鲜衣怒马. 秀发如烟,风中清扬, 寄予流轩,月下未殇. 清风疏旷,霭霭浮光, 流光皎皎,月色溶溶. 似逢诗意少年,笔下风月无端, 自矜风采若清流. 远山隐隐远 ...
- 夜光带你走进软件工程(四)
夜光序言: 如果可以长生,你愿意永远活在黑夜吗? 正文:
最新文章
- 爬虫入门的基本原理,如果你连这些都不知道那你可以放弃爬虫了
- 估算神经网络卷积核数量的近似方法
- app.vue添加子组件
- css --- 使用媒体查询当屏幕宽度小于某个值时,隐藏掉某个类
- 使用大数据闪存打造融合数据平台
- xml 中插入html代码
- PHP数组合并+与array_merge的区别分析 对多个数组合并去重技巧
- 在开发过程中调试报表插件详细教程
- 汇编 align_从零开始自制操作系统(5):实模式汇编(二)
- IS-IS GR(优雅重启)过程
- 深入解析Windows操作系统(Windows Internals) 4th Edition 读书笔记 - 序言
- 笨方法学Python
- html渐变颜色代码表,渐变颜色代码表
- AUTOCAD--实时缩放
- python 处理word 分页符、分节符
- 在项目中后端开发所需要掌握的前端知识
- 分别编写计算球的表面积和体积的函数area和volume。在主函数中输入球的半径,分别调用函数area和volume计算并输出球的表面积和体积。
- 使用 *号在分别在控制台输出一个平行四边形、等腰三角形、菱形
- 卷积神经网络demo
- 【MapSqlParameterSource】映射数据源官方API介绍
热门文章
- Deep Silver 将《地铁 离去》从Steam改至Epic商城
- 地铁运行速度测试软件,《地铁:离去 增强版》PC性能测试
- 计算机c语言苹果和虫子,计算概论(A)/基础编程练习1(8题)/2:苹果和虫子
- 计算机类免费电子书共享
- LeetCode 827 最大人工岛 C++
- 大型主机(z/OS系统)编译运行第一个COBOL语言hello world(解决编译时返回码为12问题)
- LoRaWAN 规范 1.0(2~4章)
- clang入门大全以及clang全家桶介绍
- iOS NFC读取tag功能实现
- 玩游戏用什么耳机好?和平精英吃鸡耳机排行榜