Hibernate(十四)缓存
一、什么是缓存
缓存是介于应用程序和永久必数据存储源之间,目的是为了降低应用程序直接读写永久必数据存储源的频率,从而提高运行性能
缓存通常是在内存中的如:
Office中的Word、excel
Hibernater中的Session以及SessionFactory
二、对旬在JVM中的生命周期
- new 语句创建JAVA对象时,JVM会为当前对象分配一个内存
- 只要当前对象被其它资源引用,就会一直存在内存中
- 如果当前对象不被其它资源引用,就结结束生命周期
- 一个对象被其它生命周期未结束的对象引用,则这个对象的生命周期也不会结束
三、缓存作用范围
四、缓存插件
ehcache.xml
- <?xml version='1.0' encoding='UTF-8'?>
- <ehcache>
- <diskStore path="java.io.tempdir"/>
- <!--
- maxElementsInMemory:允许缓存可以存储的总记录数
- eternal:当前缓存是否永远不过期
- overflowToDisk:当前缓存中的数据达到最大值时,是否把缓存数据写入本地硬盘
- timeToIdleSeconds:当前缓存最大闲置时间,超过该时间则销毁缓存
- timeToLiveSeconds:设置缓存超时时间,当缓存创建后,达到该时间就自动销毁
- -->
- <defaultCache
- maxElementsInMemory = "5"
- eternal = "false"
- overflowToDisk = "true"
- timeToIdleSeconds = "15"
- timeToLiveSeconds = "120"
- />
- </ehcache>
hibernate.cfg.xml
- <?xml version='1.0' encoding='UTF-8'?>
- <!DOCTYPE hibernate-configuration PUBLIC
- "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
- <!-- Generated by MyEclipse Hibernate Tools. -->
- <hibernate-configuration>
- <session-factory>
- <property name="hbm2ddl.auto">update</property>
- <property name="dialect">
- org.hibernate.dialect.Oracle9Dialect
- </property>
- <property name="connection.url">
- jdbc:oracle:thin:@10.0.0.11:1521:ORCL
- </property>
- <property name="connection.username">demo</property>
- <property name="connection.password">demo</property>
- <property name="connection.driver_class">
- oracle.jdbc.driver.OracleDriver
- </property>
- <!-- 在Hibernate配置文件中激活ehcache二级缓存 -->
- <property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
- <property name="hibernate.cache.use_query_cache">true</property>
- <mapping resource="demo/entity/Bird.hbm.xml" />
- <!-- 添加使用Hibernate注解的实体Bean,而不是映射文件 -->
- <mapping class="demo.annotations.entity.Weapon" />
- </session-factory>
- </hibernate-configuration>
实体类配置
- <?xml version="1.0" encoding="utf-8"?>
- <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <!--
- Mapping file autogenerated by MyEclipse Persistence Tools
- -->
- <hibernate-mapping>
- <class name="demo.entity.Bird" table="BIRD">
- <!-- <cache usage="read-write"/> -->
- <id name="birdId" type="long">
- <column name="id" precision="22" scale="0" />
- <generator class="native" />
- </id>
- <property name="name" type="string">
- <column name="NAME" length="50" />
- </property>
- </class>
- </hibernate-mapping>
Hibernate(十四)缓存的更多相关文章
- Hibernate(十)__缓存机制
为什么需要缓存? 缓存的作用主要用来提高性能,可以简单的理解成一个Map: 使 用缓存涉及到三个操作:把数据放入缓存.从缓存中获取数据. 删除缓存中的无效数据. 从上图看出: 当我们去查询对象的时候, ...
- Hibernate(十四)抓取策略
抓取策略: 抓取策略是当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候,Hibernate如何获取关联对象的策略.Hibernate的抓取策略是Hibernate提升性能的一 ...
- Spring学习之旅(十四)--缓存
数据库的读写并发一直都是应用性能的瓶颈所在之一,针对改动频率很小的数据我们应该将他存放到缓存中,减少与数据库的交互. 启用对缓存的支持 Spring 对缓存的支持有两种方式: 注解驱动的缓存 XML ...
- Hibernate(十四篇)
(一)Hibernate简介 (二)hibernate配置管理 (三)Hibernate对象-关系映射文件 (四)Hibernate API详解 (五)Hibernate一级缓存 (六)Hiberna ...
- 如约而至,Java 10 正式发布! Spring+SpringMVC+MyBatis+easyUI整合进阶篇(十四)Redis缓存正确的使用姿势 努力的孩子运气不会太差,跌宕的人生定当更加精彩 优先队列详解(转载)
如约而至,Java 10 正式发布! 3 月 20 日,Oracle 宣布 Java 10 正式发布. 官方已提供下载:http://www.oracle.com/technetwork/java ...
- hibernate学习(四)hibernate的一级缓存&快照
缓存:提高效率 硬件的 CPU缓存 硬盘缓存 内存 软件的 io流缓存 hibernate 的一级缓存 也是为了操作数据库的效率. 证明一级缓存在 : Person p=sessio ...
- Hibernate入门(四)---------一级缓存
Hibernate一级缓存 Hibernate的一级缓存就是指Session缓存,Session缓存是一块内存空间,用来存放相互管理的java对象,在使用Hibernate查询对象的时候,首先会使用对 ...
- 四 Hibernate的一级缓存&事务管理及其配置
持久态对象: 自动更新数据库,原理是一级缓存. 缓存:是一种优化的方式,将数据存入内存,从缓存/内存中获取,不用通过存储源 Hibernate框架中提供了优化手段:缓存,抓取策略 Hibernate中 ...
- spring boot 常见三十四问
Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家. 问题一 Spring Boot.Spring MVC 和 Spring 有什么区别 ...
随机推荐
- zoj 3157 Weapon 逆序数/树状数组
B - Weapon Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu Submit Sta ...
- 关于ClickOnce的一些技术文章
程序自动升级是我们经常遇到的需求,对于.Net程序来说,一个简单易用的方案是它内置的ClickOnce技术.ClickOnce出现的比较早,网上相应的教程还是比较丰富的,我这里就简单的整理一下相关的文 ...
- LINUX 性能工具使用
http://xuclv.blog.51cto.com/5503169/1184517
- VS2010下配置Winpcap 开发环境
http://blog.csdn.net/taotaoyouarebaby/article/details/27326829
- Mac 安装 brew
安装方法:命令行输入 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/ma ...
- Android之Android软键盘的隐藏显示研究
转自:http://blog.csdn.net/lilu_leo/article/details/6587578 看了很多这类型的文章,这篇文章最有价值,解决了我的烦恼,必须转. Android是一个 ...
- 《JavaScript网页特效经典300例》
<JavaScript网页特效经典300例> 基本信息 作者: 杨磊 张志美 丛书名: 百炼成钢系列丛书 出版社:电子工业出版社 ISBN:9787121220524 上架时间:20 ...
- Oracle通用分页存储过程的创建与使用
Oracle通用分页存储过程的创建与使用 1.创建Oracle包的定义.使用 REF CURSOR 数据类型来处理 Oracle 结果集.REF CURSOR 是一个指向 PL/SQL 查询所返回的结 ...
- oracle 日期相减 转载
转自 http://hi.baidu.com/juanjuan_66/blog/item/cf48554c9331fbe6d62afc6a.html oracle日期相减2012-02-10 12 ...
- selectHelper
转:适有修改并调试OK var Sys = (function (ua) { var s = {}; s.IE = ua.match(/msie ([\d.]+)/) ? true : false; ...