首页 > 其他分享 >强制刷新Ibatis中的缓存(OSCache)

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

时间:2023-05-10 17:08:02浏览次数:50  
标签:flushDataCache 缓存 cacheModelIds sqlMapClient Ibatis 刷新 public OSCache


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

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


Java代码

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

 



    1. // spring注入 
    2. private
    3.   
    4. public
    5. return
    6.     }   
    7.   
    8. public void
    9. this.sqlMapClient = sqlMapClient;    
    10.     }   
    11.   
    12. public
    13. throws
    14. new String[] { "TBL_SELL.oneDayCache"
    15.   
    16. // 刷新指定缓存 
    17. if (cacheModelIds.length > 0) {    
    18. for
    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代码

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

     


    1. 13:57:44,250 DEBUG CacheModel:27 - Cache 'TBL_SELL.oneDayCache': flushed  


    标签:flushDataCache,缓存,cacheModelIds,sqlMapClient,Ibatis,刷新,public,OSCache
    From: https://blog.51cto.com/u_873039/6262733

    相关文章

    • ibatis使用总结(转)
      SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的70的工作量。1、命名空间: <sqlMapnamespace="Account">,在此空间外要引用此空间的元素,则需要加上命名空间名。 2、实体的别名: <typeAliasalias="Account"type="com.lavasoft.ibatissut.simple.domain.entity......
    • ibatis查询返回java.util.HashMap结果列表
      DAO的实现类中的代码:Java代码returnMapgetItemNames(){ returngetSqlMapClientTemplate().queryForMap("getItemNameMap",null,"key","value");}SqlMap配置文件中的代码:Java代码<resultMapid=map-item-name"class=......
    • ibatis-dynamic的用法
      去除第一个prepend="and"中的字符(这里为and),从而可以帮助你实现一些很实用的功能。具体情况如下:1.使用dynamic1.1xmlselect*fromPerson表    <dynamicprepend="where"><isNotNullproperty="name"prepend="and">......
    • 缓存雪崩、缓存穿透
      缓存雪崩:指在某个时间段内,缓存中的大量数据同时过期失效或者缓存集群挂掉,导致大量请求直接打到数据库上,使得数据库瞬间压力过大,甚至瘫痪的情况。这种情况下,系统的响应时间急剧增加,甚至会出现错误和超时等问题。解决方法:设置不同的缓存过期时间:将缓存设置成不同的过期时间,避免......
    • 使用vue的keep-alive缓存组件,三级菜单组件无法缓存问题解决
      使用vue做后台管理系统,需求是所有的菜单打开之后,下次点击的时候的使用缓存,这里很简单的做法就是用来包裹住;但是一级菜单和二级菜单都没有问题,三级菜单就会出现无法缓存的问题,网上找资料说是vue中keep-alive本身存在的缺陷,需要在路由守卫中将matched属性做一下优化,具体如下//......
    • 【深入浅出 Yarn 架构与实现】6-3 NodeManager 分布式缓存
      不要跳过这部分知识,对了解NodeManager本地目录结构,和熟悉Container启动流程有帮助。一、分布式缓存介绍主要作用就是将用户应用程序执行时,所需的外部文件资源下载缓存到各个节点。YARN分布式缓存工作流程如下:客户端将应用程序所需的文件资源(外部字典、JAR包、二进制......
    • 几个常用切比较流行的WpordPress缓存插件,提高用户体验,以及优化SEO。
      W3TotalCache:这是一个免费的插件,可以通过缓存页面、数据库查询和对象来提高网站的速度,减少加载时间。WPSuperCache:这也是一个免费的插件,其主要功能是在服务器端生成静态HTML文件,以减少动态页面的生成次数。WPFastestCache:这个插件可以缓存页面、最小化HTML和CSS、延......
    • vue中手动清除KeepAlive缓存
      首先,这是vue的官方文档 KeepAlive|Vue.js(vuejs.org) KeepAlive组件能够保存当前组件状态,在进行路由跳转时变为【不活跃状态】而非卸载。但是官方并没有提供清除缓存的方法(除了刷新页面,整体重建)  假设以下是我们路由&对应组件的代码<router-viewv-slot="{Component}"......
    • 在一个进程中通过队列的方式缓存opencv视频帧,并在另一个进程中读取
      import_threadimportqueueimporttimeimportcv2fromflaskimportFlask,Responseapp=Flask(__name__)max_size=3q1=queue.Queue(maxsize=max_size)q2=queue.Queue(maxsize=max_size)open_flag=1defopen_and_show(ip_camera_url,title):......
    • Hibernate4之二级缓存配置
      缓存:缓存是什么,解决什么问题? 位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为缓存Cache。缓存目的:让数据更接近于应用程序,协调速度不匹配,使访问速度更快。 缓存的范围分为3类: 1.事务范围(单Session即一级缓存)   事务范围......