`

强制刷新Ibatis中的缓存(OSCache)

 
阅读更多

持久层使用Ibatis,并开启动缓存

后台画面可用如下代码强制刷新(根据缓存ID来刷新,不传递缓存参数时,刷新所有缓存)

Java代码 复制代码 
  1. // spring注入   
  2.     private SqlMapClient sqlMapClient;   
  3.   
  4.     public SqlMapClient getSqlMapClient() {   
  5.         return sqlMapClient;   
  6.     }   
  7.   
  8.     public void setSqlMapClient(SqlMapClient sqlMapClient) {   
  9.         this.sqlMapClient = sqlMapClient;   
  10.     }   
  11.   
  12.     public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request,   
  13.             HttpServletResponse response) throws Exception {   
  14.         String[] cacheModelIds = new String[] { "TBL_SELL.oneDayCache" };   
  15.   
  16.         // 刷新指定缓存   
  17.         if (cacheModelIds.length > 0) {   
  18.             for (String cacheModelId : cacheModelIds) {   
  19.                 sqlMapClient.flushDataCache(cacheModelId);   
  20.             }   
  21.         } else {   
  22.             // 刷新所有缓存   
  23.             sqlMapClient.flushDataCache();   
  24.         }   
  25.         return null;   
  26.     }  
// spring注入
	private SqlMapClient sqlMapClient;

	public SqlMapClient getSqlMapClient() {
		return sqlMapClient;
	}

	public void setSqlMapClient(SqlMapClient sqlMapClient) {
		this.sqlMapClient = sqlMapClient;
	}

	public ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		String[] cacheModelIds = new String[] { "TBL_SELL.oneDayCache" };

		// 刷新指定缓存
		if (cacheModelIds.length > 0) {
			for (String cacheModelId : cacheModelIds) {
				sqlMapClient.flushDataCache(cacheModelId);
			}
		} else {
			// 刷新所有缓存
			sqlMapClient.flushDataCache();
		}
		return null;
	}


输出日志

Java代码 复制代码 
  1. 13:57:44,250 DEBUG CacheModel:27 - Cache 'TBL_SELL.oneDayCache': flushed  

http://www.iteye.com/topic/829263

分享到:
评论

相关推荐

    ibatis-缓存使用示例

    1. 配置缓存:在Mapper XML文件中,通过`<cache>`元素定义缓存配置,比如设置 eviction(驱逐策略)、flushInterval(刷新间隔)、size(最大容量)、readOnly(只读)等属性。 2. 映射缓存:在具体的SQL映射语句...

    iBATIS缓存的使用方法

    本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL映射文件中应用这些缓存设置。 #### 一、缓存的基本概念 缓存是存储数据的一种临时区域,目的是减少重复查询数据库...

    解决IBatis缓存动态字段问题

    通过设置 `remapResults="true"`,可以强制IBatis每次执行此查询时都重新生成字段映射信息,而不是使用缓存的字段信息。 Java层调用DAO的方法如下: ```java public void getResDataByCondition(Page page) { // ...

    iBATIS缓存介绍

    - **3.5.2 如何手工强制清除iBATIS高速缓存中保存的对象** - 可以通过调用`clearCache()`方法来实现。 - **3.5.3 OSCACHE基本使用及配置项说明** - OSCACHE利用操作系统的缓存机制,提供更高的性能。 - 配置项...

    iBATIS缓存

    通过设置`flushCache="true"`,可以在某些操作(如插入、更新或删除)后强制清空相应的一级或二级缓存,确保缓存中的数据与数据库保持同步。 对于源码爱好者来说,研究iBATIS的缓存实现可以深入理解其内部的工作...

    ibatis 数据缓存.pdf

    ibatis 数据缓存,讨论了ibatis 数据缓存方面的概念,即用法,用到ibatis 数据缓存的可以参考一下

    ibatis缓存介绍 - 勇泽 - 博客园.mht

    ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园ibatis缓存介绍 - 勇泽 - 博客园

    ibatis_数据缓存

    iBatis 数据缓存机制是提高数据库访问性能的重要手段,它允许将查询结果存储在内存中,以便后续相同查询能够快速获取数据,而无需每次都执行SQL查询。在深入理解iBatis的Cache概念之前,首先需要知道iBatis是一个轻...

    Java ibatis缓存技术

    用于指定在执行特定的SQL语句时强制刷新缓存。例如,`<flushOnExecutestatement="updateUser"/>`表示在执行updateUser语句时刷新缓存。 ##### 4. `<property>` 元素 用于定义缓存的额外属性。例如,`...

    ibatis 缓存配置策略

    iBatis 缓存配置策略是提高数据库查询性能的关键手段之一。iBatis 提供了本地缓存机制,用于存储查询结果集,减少不必要的数据库访问。以下是对iBatis缓存配置策略的深入解析: 首先,iBatis 的 Cache 键(key)是...

    iBATIS缓存介绍[借鉴].pdf

    iBATIS,作为一个流行的数据访问框架,也提供了缓存功能来优化数据库查询。本文将详细介绍iBATIS缓存的概念、类型以及配置方法。 一.缓存介绍 缓存,简单来说,是为了减少对数据库的频繁访问,将常用数据存储在...

    Java_ibatis缓存技术

    在iBatis中,缓存被划分为一级缓存和二级缓存。 1. **一级缓存**:也称为SqlSession级别的缓存,是默认开启的。当我们在同一个SqlSession中执行相同的SQL查询时,如果第一次查询的结果已经存在于缓存中,那么第二次...

    oscache处理

    osCache支持多种缓存失效策略,如定时刷新、手动清除等。 - 监控和性能优化:定期检查osCache的性能,如内存占用、缓存命中率等,以便进行优化调整。 总结来说,osCache是一个强大且灵活的缓存工具,它可以与...

    Ibatis之缓存插件

    Oscache.jar包 博文链接:https://dangzhao.iteye.com/blog/193572

    ibatis 缓存 - 24小时学习网.mht

    ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网ibatis 缓存 - 24小时学习网

    spring+ibatis+oracle分页缓存源码

    在Spring+iBatis+Oracle体系中,缓存可以分为两种类型:一级缓存(本地缓存)和二级缓存。 一级缓存是iBatis默认提供的,它存在于SqlSession级别,同一SqlSession内的多次查询会共享结果,避免了重复的数据库访问。...

Global site tag (gtag.js) - Google Analytics