文档章节

hibernate缓存了解

Its_Ryan
 Its_Ryan
发布于 2017/05/26 22:39
字数 714
阅读 9
收藏 0

hibernate缓存概念:不是指计算机内存和CPU的一二级缓存,是指为了降低应用程序对物理数据源的访问频次从而提高应用程序的运行性能的一种策略

orm框架访问数据库的效率直接影响应用程序的运行速度,提升和优化orm框架的执行效率非常重要
hibernate缓存是提升和优化hibernate执行效率的重要手段,所以学会hibernate缓存的使用和配置是优化的关键

缓存,物理数据源的复制,缓存的数据存储在内存中

同一个session不会查询同一个数据不会发出两条SQL语句
不同的session查询同一条数据会发出两次SQL查询

一级缓存:session缓存,会话级缓存,通过session在数据库查询实体时会把实体在内存中存储起来,下一次查询同一实体不再从数据库中获取而是从内存中获取

一级缓存的生命周期和session相同,session销毁也随之销毁;一级缓存的数据可适用范围在当前会话之内

一级缓存的api:evict()清除一级缓存的指定对象,clear()清除一级缓存中的所有内容

二级缓存,每个session可以同时使用:二级缓存配置

添加二级缓存对应jar包;
hibernate配置文件添加Provider类描述;
添加二级缓存属性配置文件;
在需要被缓存的表对应的映射文件上添加<cache/>标签


实体类映射文件的cache标签介绍:

cache usage=“readonly” usage表示指定缓存策略 可选策略包括transactional,read-only,read-write,nonstrict-read-write

include 是否缓存延迟加载对象   all     non-lazy延迟加载属性不加载

region:指定二级缓存区域名

二级缓存又称为全局缓存和应用级缓存,二级缓存的数据可适用范围是当前应用的所有会话
二级缓存是可插拔式缓存:默认是EHCache,还支持其他二级缓存组件:Hashtable,OSCache,SwarmCache,JBOSS TreeCache

什么特征的数据会放入二级缓存中:很少被修改的数据,不是很重要的数据允许偶尔并发的数据,不会被并发访问的数据,参考数据

数据库的粗浅了解
SQL语句:

DDL 数据定义语言  create  alter 负责数据结构定义与数据库对象定义

TPL 事务处理语言  确保被DML语句影响的表和行得以及时更新,包括开始事务,提交事务,回滚

DCL 数据控制语言    用来设置数据库用户或角色权限的,包括GRANT、DENY、REVOKE

DML 数据操作语言    增删改查

© 著作权归作者所有

Its_Ryan
粉丝 0
博文 23
码字总数 22267
作品 0
其他
私信 提问
MyBatis和Hibernate相比,优势在哪里?

1、开发对比开发速度 hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernate ...

qq5923dd411b8fa
2018/06/26
0
0
Hibernate查询缓存全面分析

这里介绍Hibernate查询缓存对Iterator不起作用,只对List起作用。下面我们这种介绍把二级缓存 和 Hibernate查询缓存 结合使用。 AD: 本文向大家介绍Hibernate查询缓存,可能好多人还不了解H...

dong.li
2012/04/24
0
0
Hibernate杂问

1 谈谈你对ORM框架的基本思想的了解? 首先 ORM是 对象关系映射,是为了解决类似于JDBC实现对象持久化的问题开发的。 框架的基本特征:完成面向对象的编程语言到关系数据库之间的映射。 他的...

陈嘻嘻哈哈
2015/12/18
0
0
MyBatis和Hibernate相比,优势在哪里?

1、开发对比开发速度 hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernate ...

park
2017/11/28
0
0
MyBatis和Hibernate优劣势对比

1、开发对比 开发速度 Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernat...

黎嘉诚
2016/08/05
88
0

没有更多内容

加载失败,请刷新页面

加载更多

Angular 英雄编辑器

应用程序现在有了基本的标题。 接下来你要创建一个新的组件来显示英雄信息并且把这个组件放到应用程序的外壳里去。 创建英雄组件 使用 Angular CLI 创建一个名为 heroes 的新组件。 ng gener...

honeymoose
今天
5
0
Kernel DMA

为什么会有DMA(直接内存访问)?我们知道通常情况下,内存数据跟外设之间的通信是通过cpu来传递的。cpu运行io指令将数据从内存拷贝到外设的io端口,或者从外设的io端口拷贝到内存。由于外设...

yepanl
今天
6
0
hive

一、hive的定义: Hive是一个SQL解析引擎,将SQL语句转译成MR Job,然后再在Hadoop平台上运行,达到快速开发的目的 Hive中的表是纯逻辑表,就只是表的定义,即表的元数据。本质就是Hadoop的目...

霉男纸
今天
5
0
二、Spring Cloud—Eureka(Greenwich.SR1)

注:本系列文章所用工具及版本如下:开发工具(IDEA 2018.3.5),Spring Boot(2.1.3.RELEASE),Spring Cloud(Greenwich.SR1),Maven(3.6.0),JDK(1.8) Eureka: Eureka是Netflix开发...

倪伟伟
昨天
17
0
eclipse常用插件

amaterasUML https://takezoe.github.io/amateras-update-site/ https://github.com/takezoe/amateras-modeler modelGoon https://www.cnblogs.com/aademeng/articles/6890266.html......

大头鬼_yc
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部