0 0

关于Mybats的缓存。0

Mybatis的缓存,在执行insert,update,delete语句时会自动清空缓存。
但是在一对多的情况下。为什么在多的一方执行插入删除更新时,不清空缓存?


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 
<mapper namespace="xx.Dao.ServerInfoDao">
   	<cache
      eviction="FIFO"
      flushInterval="6000000"
      size="1024"
      readOnly="true" >      
      </cache>  
 
   <resultMap type="xx.Model.Server" id="ServersMap">   		      	     
		<id property="serverId"			 	column="ServerId" />
		<result property="ipAddress"			column="IPAddress" />
		<result property="serverName"			column="ServerName" />    	
    	<collection property="positions" column="{id=ServerId,user=username}" select="getPositionsById"/>    	
	</resultMap>
	
	<resultMap type="xx.Model.ServerPosition" id="positionMap">						
		<id property="x1" column="x1" />
		<id property="x2" column="x2" />						
		<result property="x" column="x" />
		<result property="y" column="y" />								
    </resultMap>
		
    <select id="SelectServer"   resultMap="ServersMap"  statementType="CALLABLE">
		SELECT * FROM ServerInfo
    </select>
        
	<select id="getPositionsById" resultMap="positionMap"> 
		SELECT * FROM ServerPosition
		WHERE  UserName=#{user} AND
			   ServerId=#{id}  
  	</select>      
    
	<insert id="InsertServer" statementType="CALLABLE" parameterType="xx.Model.Server">    	 
		INSERT INTO [ServerInfo]([ServerID],[IPAddress],[ServerName])
            VALUES (#{serverId},#{ipAddress},#{serverName});
    </insert>        	
	
 	<update id="UpdateServer" statementType="CALLABLE" parameterType="xx.Model.Server">    	 
		UPDATE [ServerInfo]
   		SET [ServerName] = #{serverName}
      		[IPAddress] = #{ipAddress},      		      		
 		WHERE  [ServerID] = #{serverId}; 
    </update>
	
 	<delete id="DeleteServer" statementType="CALLABLE" parameterType="java.lang.Integer" >
		DELETE FROM [ServerInfo] WHERE  [ServerID] = #{serverId};
    </delete>
    
    <insert  id="InsertPosition" statementType="CALLABLE" >
    	INSERT INTO ServerPosition 
    	SELECT #{0},#{1},#{2},#{3}
    </insert>

    <delete  id="DeletePosition" statementType="CALLABLE" >
    	DELETE FROM ServerPosition 
    	WHERE   [x1]=#{0} AND
    			[x2]=#{1}
    </delete>
       
</mapper>



执行上面配置文件中的InsertPosition和DeletePosition没法清空缓存?这是为什么呢?
2014年4月24日 17:37
目前还没有答案

相关推荐

    mybats中文官方文档最新版

    这个"mybats中文官方文档最新版"包含了关于MyBatis-Spring的详细指导和API参考,对于学习和掌握这个框架的开发者来说是非常宝贵的资源。 首先,MyBats的核心功能在于将MyBatis的SQL映射功能与Spring的依赖注入和...

    浏览器缓存机制介绍与缓存策略剖析.pptx

    浏览器缓存机制介绍与缓存策略剖析 浏览器缓存机制是指浏览器在请求资源时,对已经请求过的资源进行缓存,以便下次请求时可以直接从缓存中获取,从而提高页面加载速度和减少服务器的压力。本文将详细介绍浏览器缓存...

    面试中缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级怎么解答?.docx

    在面试中,对于缓存相关的知识点,面试官可能会考察你对缓存雪崩、缓存穿透、缓存预热、缓存更新以及缓存降级的理解和处理策略。以下是这些概念的详细解释: 1. **缓存雪崩** 缓存雪崩是指大量缓存在同一时刻过期...

    深入理解MyBatis中的一级缓存与二级缓存

    "深入理解MyBatis中的一级缓存与二级缓存" MyBatis是一种流行的持久层框架,它提供了缓存机制来提高应用程序的性能。在MyBatis中,有两种类型的缓存:一级缓存和二级缓存。下面我们将深入了解MyBatis中的一级缓存和...

    关于APP清理缓存

    在智能手机的日常使用中,APP清理缓存是一个重要的维护步骤,它可以帮助优化设备性能、节省存储空间,并提高应用运行速度。缓存是应用程序在运行过程中为了加速数据加载而临时存储的一些数据,但随着时间的推移,...

    本地缓存与分布式缓存优缺点,使用

    本地缓存与分布式缓存优缺点、使用场景 缓存是计算机系统中的一种优化技术,通过将频繁访问的数据存储在内存中,以减少对外部存储设备的访问次数,提高系统的响应速度和性能。本文将详细介绍本地缓存与分布式缓存的...

    缓存、缓存算法和缓存框架简介 - 文章 - 伯乐在线.pdf

    面试官询问关于缓存算法及其作用时,面试者更是无法回答,显示出对缓存算法的基本概念和应用缺乏了解。 命中率是指访问缓存时成功获取数据的次数与总访问次数的比例。命中率越高,说明缓存效果越好,能够有效减少对...

    缓存、缓存算法和缓存框架简介.docx

    在 IT 领域,缓存是一种重要的技术,用于提高应用程序的性能和响应速度。缓存的基本原理是将常用数据存储在高速、接近计算单元的地方,以便快速访问,减少对慢速存储(如硬盘或网络)的依赖。本文将深入探讨缓存、...

    spring简单的缓存

    在IT行业中,缓存是一种非常重要的技术,它能够提高应用程序的性能和响应速度,通过将经常访问的数据存储在快速访问的内存中,避免了频繁的数据库查询或计算。本示例将聚焦于“Spring简单的缓存”实现,帮助开发者...

    hibernate一级缓存和二级缓存的区别与联系

    Hibernate 是一个流行的对象关系映射(ORM)框架,它提供了数据缓存机制以优化数据库访问性能。缓存机制分为一级缓存和二级缓存,两者都有助于减少对物理数据库的直接访问,从而提高应用程序的运行效率。 一级缓存...

    关于缓存的一些资料 关于缓存的一些资料

    本篇文章将深入探讨关于缓存的一些核心概念、工作原理以及在ASP.NET中的应用。 首先,我们要理解缓存的基本原理。缓存是一种存储机制,它临时存储经常访问的数据,以便快速获取。当一个请求到达时,系统会首先检查...

    hibernate一级缓存、二级缓存和查询缓存

    **hibernate一级缓存、二级缓存和查询缓存** 在Java的持久化框架Hibernate中,缓存机制是提高应用程序性能的关键要素。缓存能够减少数据库的访问次数,提高数据读取速度,并且在一定程度上降低了系统的负载。本文将...

    JSP 页面缓存以及清除缓存

    ### JSP 页面缓存及其清除方法详解 #### 一、JSP页面缓存的重要性与应用场景 JSP(Java Server Pages)技术是一种结合了HTML、XML和Java编程的技术,用于创建动态网页。在JSP开发中,页面缓存是一种常用的技术手段...

    geoserver配置图层缓存

    本篇文章将深入探讨如何在Geoserver中配置图层缓存,以及缓存对性能的影响。 一、图层缓存的重要性 图层缓存是Geoserver优化性能的关键机制之一。当用户请求地图时,Geoserver会预先渲染图层并将其存储在硬盘上,...

    关于缓存的一点心得

    关于缓存的一点心得 一、缓存的基本概念与分类 缓存技术是现代软件开发中提高系统性能的重要手段之一,特别是在Web应用中扮演着关键角色。根据存储内容的不同,缓存可以分为两大类:页面缓存和数据缓存。 1. **...

    redis本地缓存与redis缓存

    关于数据库的缓存策略,我们可以采用“缓存-数据库双写”模式,即在更新数据库的同时更新缓存,但这可能导致短暂的数据不一致。为了缓解这个问题,可以采用“写后读”策略,确保在写操作成功后立即读取,确保数据...

    springboot缓存一致性解决

    在Spring Boot应用中,缓存一致性是一个重要的议题,特别是在分布式系统中,多个节点可能同时访问并更新同一数据,导致缓存中的数据不一致。本文将深入探讨Spring Boot中如何处理和解决缓存一致性问题。 首先,我们...

    Loadrunner负载测试 浏览器缓存设置

    2. **启用缓存**:相反,如果要模拟有缓存的情况,可以使用`web_cache_enable()`函数开启缓存,并通过`web_cache_control()`来控制缓存策略。例如,可以设置`web_cache_control("cache", "on")`来开启缓存,并通过`...

    webapi接口缓存组件

    WebAPI接口缓存组件是一种优化WebAPI服务性能的技术,它通过存储先前请求的响应结果,减少不必要的数据库查询或计算,从而提高系统响应速度。本文将详细介绍这个自定义的WebAPI接口缓存组件的设计原理、实现方式及其...

    java map 实现缓存技术

    7. **缓存击穿与缓存雪崩**:处理大量并发请求同时导致缓存失效(击穿)或整个缓存服务崩溃(雪崩)的问题,可以通过加锁、使用分布式锁、预热缓存等方式解决。 8. **监控与统计**:为了优化缓存性能,需要收集和...

Global site tag (gtag.js) - Google Analytics