- 浏览: 256784 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (217)
- java 基础 (36)
- flex (1)
- structs 2.0 (5)
- oracle 学习过程 (20)
- j2ee (63)
- c/s java (0)
- javaScript (24)
- jdom (1)
- jquery (1)
- java模式 (1)
- Datebase common konwledge (3)
- JfreeChart (3)
- html (3)
- sql server (6)
- tomcat servlet (4)
- lucene (1)
- Linux (3)
- 常见注意 (6)
- hibernate (2)
- jsp页面 (3)
- effective Java (1)
- spring (2)
- Spark (1)
- json (0)
- JMS (1)
- 电脑故障 (2)
- mysql (1)
- JBPM (2)
- java 线程 (1)
- oracle优化 (1)
- 安全 (1)
- hadoop (0)
- 算法 (1)
- hbase (0)
最新评论
-
mfhappy:
你好,你这个导出的文件中如果有图片你怎么处理??
jsp 导出excel(利用excel本身另存为html) -
丹寺丁:
...
jquery 解析 java 后台的 json数据 -
xurichusheng:
不直接诶生成想要的对象,而是让客户端利用所有必要的参数 ...
重叠构造器、Builder模式 -
wen121221222:
感谢啊!困恼我一个下午的问题终于解决了
java.lang.NoClassDefFoundError: javax/mail/Authenticator异常 -
gaoyanglovejava:
不错。就是这么解决的。多谢
The project is not a myEclipse hibernate project
一级缓存
Hibernate框架一级缓存的特点:
1.它是hibernate自带的,不用我们手动配置。
2.它是以K-V对的方式存储数据,以KEY去获得PO对象。
3.只在同一个中session共享。
由于是hibernate自身就带有的,所以使用时不需要配置XML的工作,只要知道在同一个session中的存在相应的对象,那么它们都是共享的就可以了。
值得注意的是:
1.通过在做查询的时候,有几个查询方法支持一级Hibernate缓存,它们分别是:load(),get(),iterate(),其中要注意的是iterate方法只对实体对象查询才支持一级缓存,如果使用iterate来查询对象里面的相关属性,则查询的时候不支持一级缓存。
2.在管理一级缓存的时候可以使用,clear()和evict(object)两个方法,clear是清空全部,evict是清除指定的缓存对象。要好好的使用这两个方法,特别是在缓存数据量大的情况下。
二级缓存
Hibernate框架二级缓存的特点:
1.同样是K-V对的方式存储数据,以ID作为KEY。
2.它的共享范围是SessionFactory。
3.它不是自带的,使用时需要导入第三方实现架包,并做相应配置。常用的有EHcache(官方推荐),JBossCache,OScache等等。
二级缓存和session级别的缓存一样都只对实体对象做缓存,不对属性级别的查询做缓存。
EHcache的简单使用:
先配置一个叫做:ehcache.xml文件
- <?xml version="1.0" encoding="UTF-8"?>
- <ehcache>
- <diskStore path="d:/cache" />
- <defaultCache maxElementsInMemory="1000" eternal="false"
- overflowToDisk="true" timeToIdleSeconds="180" timeToLiveSeconds="300"
- diskPersistent="false" diskExpiryThreadIntervalSeconds="120" />
- <cache name="longTime" maxElementsInMemory="100" eternal="false"
- overflowToDisk="true" timeToIdleSeconds="1800"
- timeToLiveSeconds="3000" diskPersistent="false"
- diskExpiryThreadIntervalSeconds="120" />
- </ehcache>
diskStore 作用是如果要缓存到硬盘上,这里填写缓存到硬盘的路径。
maxElementsInMemory 作用是最大缓存连接数,也就是说只能在缓存中保存这里设置的数量。
overflowToDisk 当设置为true的时候,如果内存不足时就把缓存保存到硬盘。
timeToIdleSeconds 最大空闲时间,超过了这个时间就算超时了。
timeToLiveSeconds 最大生存时间。
defaultCache 是默认调用的缓存模版。
cache 是自定义其他缓存模版,这样的好处在于可以配置多个缓存模版,然后在hibernate-mapping中绑定到某个class。
例如:
- <?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" >
- <hibernate-mapping>
- <class name="com.lovo.po.UserPO" table="userinfo" optimistic-lock="version">
- <!-- region的作用是指明要使用ehcache.xml文件中的哪个规则,这里需要与cache节点中的name属性想匹配,如果不写,则使用默认规则,即defaultCache里面的规则 -->
- <cache region="longTime" usage="read-write"/>
- <id name="id" column="uid" type="int">
- <generator class="increment"></generator>
- </id>
- <version name="verson" column="version" type="int" />
- <property name="username" column="name" type="string"></property>
- ...
- </class>
- </hibernate-mapping>
接下来就在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">
- <hibernate-configuration>
- ...
- <!-- 使用二级缓存EHCACHE -->
- <property name="hibernate.cache.EhCacheProvider">true</property>
- <property name="cache.provider_class">
- org.hibernate.cache.EhCacheProvider
- </property>
- <property name="hibernate.cache.use_query_cache">true</property>
- ...
- </session-factory>
- </hibernate-configuration>
发表评论
-
远程调用servlet
2012-09-12 16:26 3989//发起请求、先写发送(out)、然后等待度(in) URL ... -
基于ssh的项目的单元测试
2012-08-01 13:55 982package com.csoft.ta.util; imp ... -
JBPM设计器乱码问题
2012-06-30 13:44 775修改eclipse安装跟目录下的eclipse.ini文件,在 ... -
项目中读取文件
2012-03-13 18:31 817import java.io.BufferedReader;i ... -
项目中配置log4j
2012-03-08 10:26 892<!--如果不定义webAppRootKey参数,那么w ... -
qq album
2012-01-05 23:02 1034此文章完全转自他人博客(用于个人学习记录) 这个功能的实现关 ... -
关于quartz 2.x 一些记录
2011-12-30 14:27 1201功能需要 审计(即对不同规则的定制的东西进行轮巡)如果每一个轮 ... -
JavaScript动态操作表格,添加,删除行、列及单元格
2011-12-27 16:11 806<html> <head> < ... -
jsp 导出excel(利用excel本身另存为html)
2011-12-27 16:06 4524<%@page contentType="ap ... -
jsp 导出excel
2011-11-21 16:09 898<%@page contentType="ap ... -
java mail 应用
2011-09-22 10:02 870以下全部copy from http://www.cnbl ... -
quartz 在 spring静态、动态配置
2011-09-20 14:55 1186项目要求动态改变配置时间,动态改变quartz的 cron表达 ... -
JMX简单示例
2011-09-02 16:40 906以下文章摘自网络仅供学习用 1.编写一个以MBean ... -
cron表达式
2011-08-01 16:59 837以下文章复制自他出: 一个Cron-表达式是一个由六至七个 ... -
不同数据库的数据库类型及对应的jdbc类型
2011-07-27 12:47 1211public static void main(String ... -
Dom4j的使用
2011-06-15 18:08 763Dom4j 使用简介 作 ... -
SVN update时候报错的解决办法。。Working copy not locked; this is probably a bug, please rep
2011-06-01 09:02 5144今天上午CVS服务器突然坏了。。改用svn,安装完插件,连到我 ... -
hibernate 延迟加载
2011-05-12 17:25 703延迟加载: 延迟加 ... -
读取Blob字段图片、并进行缩放放到页面上
2011-03-29 15:15 4176整个流程分为四步,连接oracle数据库 -> 读取bl ... -
James 一
2011-03-09 10:48 932James 邮件服务器的安装和配置 James 邮件服务 ...
相关推荐
标题“Hibernate一级缓存和二级缓存”指的是Hibernate框架中的两种缓存机制,它们是提高数据访问性能的关键要素。一级缓存是Session级别的,而二级缓存是SessionFactory级别的,两者在数据库操作中起到了重要的作用...
总结来说,Hibernate 的一级缓存和二级缓存都是为了提高数据访问效率,但它们在范围和并发控制方面有所不同。一级缓存是事务级别的,保证了数据的强一致性,而二级缓存提供了更多的灵活性,可以跨事务共享,但需要...
Hibernate 一级缓存和二级缓存的区别
用以介绍hibernate 框架的缓存机制
**hibernate一级缓存、二级缓存和查询缓存** 在Java的持久化框架Hibernate中,缓存机制是提高应用程序性能的关键要素。缓存能够减少数据库的访问次数,提高数据读取速度,并且在一定程度上降低了系统的负载。本文将...
本文将深入探讨Hibernate的一级缓存和二级缓存,以及二级缓存的数据存储结构。 首先,一级缓存是Hibernate默认提供的缓存,每个Session都有一个独立的一级缓存。当我们在操作数据库时,例如查询或更新记录,这些...
Hibernate一级缓存和二级缓存详解 Hibernate是一种流行的基于Java的持久化框架,它提供了两种缓存机制:一级缓存和二级缓存。了解这两种缓存机制是非常重要的,因为它们可以极大地提高应用程序的性能。 一级缓存 ...
本篇将深入探讨Hibernate的一级缓存和二级缓存,以及查询缓存的配置和使用。 ### 一级缓存 一级缓存是Hibernate默认提供的缓存,它是Session级别的,每个Hibernate Session都有一个私有的、本地的一级缓存。当我们...
本文将深入探讨Hibernate的一级缓存、二级缓存以及查询缓存,通过具体的实例来阐述它们的工作原理和使用方法。 首先,我们从一级缓存开始。一级缓存是Hibernate默认提供的缓存,它是每个Session级别的,也被称为...
本篇文章将深入探讨Hibernate的二级缓存机制,以及如何进行一级缓存与二级缓存的同步,同时还会介绍二级缓存的配置文件设置。 一级缓存是Hibernate默认提供的缓存,每个SessionFactory实例都有一个一级缓存。当对象...
《深入理解Hibernate的一级缓存与二级缓存》 Hibernate作为一款强大的ORM框架,其缓存机制是优化数据库操作性能的关键之一。缓存主要分为一级缓存和二级缓存,它们各自承担着不同的职责,共同提升了数据访问的效率...
总的来说,"hibernate二级缓存实例"是一个很好的学习资源,它可以帮助我们理解二级缓存的工作机制,掌握如何在项目中配置和使用,以及注意潜在的问题和优化策略。通过实践,我们可以更好地运用这一技术,提升Java...
Hibernate二级缓存是一种提高应用程序性能的技术,它将数据存储在SessionFactory级别的缓存中,使得数据可以在不同的Session之间共享。这与一级缓存(Session级别)不同,一级缓存仅存在于单个Session生命周期内,当...
Hibernate 二级缓存是针对SessionFactory级别的全局缓存,与一级缓存(Session级别)不同,一级缓存只在单个Session生命周期内有效。二级缓存则允许不同Session之间共享数据,提高了数据访问效率,减少了对数据库的...
综上所述,通过学习`hibernate二级缓存示例源码`,我们可以了解到如何在实际项目中配置和使用Hibernate二级缓存,从而提升系统的性能。在实际应用中,应结合具体场景选择合适的缓存策略,以达到最佳的性能优化效果。
Hibernate二级缓存是Java开发中使用Hibernate框架进行数据持久化时优化性能的一种重要技术。它在一级缓存(Session级别的缓存)的基础上,提供了一个全局的、跨会话的数据存储层,可以显著减少对数据库的访问,从而...
Hibernate 二级缓存
在处理大数据量或高并发的场景下,为了提高性能和减少数据库负载,Hibernate 提供了二级缓存机制。本文将深入探讨Hibernate的二级缓存,并结合相关源码进行解析。 ### 一、一级缓存与二级缓存 1. **一级缓存...
二级缓存是 Hibernate 缓存策略的一部分,它在应用程序的多个会话之间共享数据,进一步优化了数据库访问效率。 二级缓存分为以下关键知识点: 1. **一级缓存与二级缓存的区别**: - 一级缓存:每个 Hibernate ...