- 浏览: 822707 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
在开发中使用二级缓存 在这一部分中,将细致地介绍如何在Hibernate中使用二级缓存。在这里所使用的二级缓存组件为EHCache。 关于EHCache的详细信息请参考http://ehcache.sourceforge.net上的内容。 在Hibernate中使用二级缓存需要经历以下步骤: ● 在Hibernate配置文件(通常为hibernate.cfg.xml)中,设置二级缓存的提供者类。 ● 配置EHCache的基本参数。 ● 在需要进行缓存的实体对象的映射文件中配置缓存的策略。 下面就来逐步演示一下如何在开发中使用Hibernate的二级缓存。 修改Hibernate的配置文件 在使用Hibernate的二级缓存时,需要在Hibernate的配置文件中指定缓存提供者对象,以便于Hibernate可以通过其实现对数据的缓存处理。 在这里需要设置的参数是hibernate.cache.provider_class,在使用EHCache时,需要将其值设置为org.hibernate.cache.EhCacheProvider。具体要增加的配置如下所示: <property name="hibernate.cache.provider_class"> org.hibernate.cache.EhCacheProvider</property> Hibernate配置文件的详细内容请参考配套光盘中的hibernate"src"cn"hxex" hibernate"cache"hibernate.cfg.xml文件。 增加EHCache配置参数 在默认情况下,EHCache会到classpath所指定的路径中寻找ehcache.xml文件来作为EHCache的配置文件。 在配置文件中,包含了EHCache进行缓存管理时的一些基本的参数。具体的配置方法如清单14.9所示。 清单14.9 EHCache的配置 <?xml version="1.0" encoding="UTF-8"?> <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd"> <diskStore path="java.io.tmpdir" /> <defaultCache maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" diskPersistent="false" diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU" /> </ehcache> 在这里只是使用EHCache所提供的默认配置文件进行了EHCache的基本配置,对于这些参数的详细含义请参考其官方网站(http: //ehcache.sourceforge.net/)中的资料。在实际的开发中,应该依据自己的具体情况来设置这些参数的值。 开发实体对象 这里所使用的是一个非常简单的User对象,它只包含了ID,name和age三个属性,具体的实现方法请参见配套光盘中的hibernate"src"cn"hxex"cache"User.java文件。 配置映射文件 映射文件的配置与不使用二级缓存的Java对象的区别就在于需要增加前面所介绍的<cache>元素来配置此对象的缓存策略。在这里所使用的缓存策略为“read-write”。所以,应该在映射文件中增加如下的配置: <cache usage="read-write"/> 映射文件的详细配置请参考配套光盘中的hibernate"src"cn"hxex"cache"User.hbm.xml文件。 测试主程序 在这里的测试主程序采用了多线程的运行方式,以模拟在不同Session的情况下是否真的可以避免查询的重复进行。 在这个测试程序中,所做的工作就是依据ID来得到对应的实体对象,并将其输出。然后通过多次运行此程序,来检查后面的运行是否进行了数据库的操作。 测试主程序的主要测试方法的实现如清单14.10所示。 清单14.10 测试主程序的实现 …… public void run() { SessionFactory sf = CacheMain.getSessionFactory(); Session session = sf.getCurrentSession(); session.beginTransaction(); User user = (User)session.get( User.class, "1" ); System.out.println( user ); session.getTransaction().commit(); } public static void main(String[] args) { CacheMain main1 = new CacheMain(); main1.start(); CacheMain main2 = new CacheMain(); main2.start(); } } 运行测试程序 在运行测试程序之前,需要先手动地向数据库中增加一条记录。该记录的ID值为1,可以采用下面的SQL语句。 INSERT INTO userinfo(userId, name, age) VALUES( '1', 'galaxy', 32 ); 接下来在运行测试主程序时,应该看到类似下面的输出: Hibernate: select user0_.userId as userId0_0_, user0_.name as name0_0_, user0_.age as age0_0_ from USERINFO user0_ where user0_.userId=? ID: 1 Namge: galaxy Age: 32 ID: 1 Namge: galaxy Age: 32 通过上面的结果可以看到,每个运行的进程都输出了User对象的信息,但在运行中只进行了一次数据库读取操作,这说明第二次User对象的获得是从缓存中抓取的,而没有进行数据库的查询操作。
相关推荐
开启二级缓存需要在MyBatis的配置文件中加入 `<settings> <setting name="cacheEnabled" value="true"/></settings>`,并在需要开启二级缓存的mapper.xml中加入 `<cache/>`标签,同时让使用二级缓存的POJO类实现...
- **依赖二级缓存**:查询缓存的结果依赖于二级缓存,只有实体对象存在于二级缓存中,查询结果才能被缓存。 - **不保证数据一致性**:查询缓存不提供数据一致性保证,可能存在脏读问题。因此,适用于那些对实时性...
- **缓存安全**:二级缓存中的数据是全局共享的,所以在多用户、多事务的场景下,需要考虑并发控制和数据一致性。 理解并合理运用 MyBatis 的缓存机制,能显著提高应用程序的性能,减少对数据库的访问压力。在实际...
本篇将深入探讨Hibernate的一级缓存和二级缓存,以及查询缓存的配置和使用。 ### 一级缓存 一级缓存是Hibernate默认提供的缓存,它是Session级别的,每个Hibernate Session都有一个私有的、本地的一级缓存。当我们...
当对象在一级缓存中被修改并提交后,Hibernate会根据配置将这些变化同步到二级缓存中。这个过程包括了更新、删除和插入操作。值得注意的是,对于删除操作,Hibernate不仅会移除相应对象,还会清除可能存在的关联对象...
在这个例子中,我们将探讨如何在Spring环境中实现二级缓存,主要涉及Spring与Hibernate集成使用EhCache的情况。 一级缓存是ORM框架(如Hibernate)自身提供的缓存,它存储了最近查询的数据,减少了对数据库的直接...
在IT行业中,二级缓存是一种优化数据库访问性能的重要技术,特别是在使用ORM框架(如Hibernate)、权限管理框架(如Shiro)以及SQL映射框架(如MyBatis)时。二级缓存可以存储经常访问的数据,避免频繁地从数据库中...
如果在同一个 SqlSession 内再次执行相同的查询,MyBatis 就会直接从一级缓存中获取结果,而不再执行 SQL 查询。然而,当 SqlSession 关闭或提交事务时,一级缓存会被清空。 一级缓存的优势在于减少了对数据库的...
2. **更新实体**:当对实体进行修改时,如果启用了`read-write`缓存策略,则更新会同时反映在二级缓存中。 3. **删除实体**:执行删除操作时,相关的实体不仅从数据库中删除,还会从二级缓存中移除。 #### 五、注意...
Hibernate 是一个非常流行的 Java 应用程序开发框架,主要...在实际项目中,合理使用二级缓存能显著提升系统的响应速度和处理能力,降低数据库负载,但同时需要注意缓存管理和一致性问题,防止数据不一致的情况发生。
在使用二级缓存时,需要注意缓存同步和失效的问题,因为缓存中的数据可能与数据库中的数据不同步。因此,需要正确配置缓存的生命周期和清理策略,以确保数据一致性。 总之,Hibernate的二级缓存是一个强大的工具,...
以EhCache为例,我们需要在项目中引入ehcache-core或ehcache的依赖,并在Hibernate配置文件(hibernate.cfg.xml或persistence.xml)中启用二级缓存,添加如下配置: ```xml ...
正确理解和使用二级缓存,可以帮助我们在开发过程中优化系统性能,同时需要注意数据安全和并发问题。对于“mapper”这个压缩包子文件的文件名称,可能包含的是MyBatis的Mapper配置文件或对应的接口代码,这些都是...
在Android开发中,有许多优秀的图片加载库如Glide、Picasso和 Fresco,它们都内置了二级缓存机制。这些库在后台线程中异步加载图片,减少UI阻塞,并自动处理缓存策略。例如,Glide的内存缓存使用了LruResourceCache...
通过以上步骤,我们就成功地在Spring Boot 2.1.4.RELEASE项目中配置了使用Redis作为Hibernate二级缓存的环境。这将显著提升数据库查询效率,减少对数据库的压力,尤其在高并发场景下,效果尤为明显。记得在实际生产...
在实际应用中,理解一级缓存和二级缓存的工作机制对软件开发人员至关重要。例如,在编写高并发、高性能的代码时,开发者可以利用缓存友好的数据结构和算法来最大化缓存利用率,减少缓存未命中的情况。此外,工具如...
当对象被加载到 Session 中,它们会被存储在一级缓存中,直到 Session 被关闭。一级缓存是事务范围的,只对当前 Session 可见。 - 二级缓存:是全局的,跨越多个 Session 和 Transaction,由缓存提供者管理。二级...
6. **缓存更新**:当数据库中的数据发生变化时,Hibernate可以通过事件监听机制,将这些变化同步到二级缓存中,确保缓存数据的实时性。 7. **缓存失效**:除了预设的过期策略外,还可以通过查询后清除、手动清除等...
SSH(Struts2、Spring、Hibernate)是一种...通过部署到Tomcat服务器,初学者可以了解和学习如何在实际环境中配置和使用Hibernate二级缓存。这将是一个不错的实践项目,有助于理解SSH框架和Hibernate缓存的工作原理。