`

ibatis缓存

阅读更多
1.ibatis中使用缓存
首先设置SqlMapConfig.xml中<settings/>节点的属性cacheModelsEnabled="true"
 
  然后在具体sqlmap文件中书写<cacheModel>
Xml代码
<cacheModel id="product-cache" type="LRU">   
  <flushInterval hours="24"/>   
  <flushOnExecute statement="insertProduct"/> 
  <flushOnExecute statement="updateProduct"/>   
  <flushOnExecute statement="deleteProduct"/>   
  <property name="size" value="1000" />   
</cacheModel> 

  
  最后给<select/>节点应用cache
Xml代码
<select id="getAllProducts" cacheModel="product-cache"> 
  select * from PRODUCT  
</statement>  

   
复杂点的用法
Xml代码
<cacheModel/>节点  
  type="LRU" 
    type属性可以指定cache的类型,ibatis支持3种缓存:  
      MEMORY     没有统一的对象重用模式或内存不足的应用。  
      LRU        经常使用的对象,这是性能最好的选择。  
      FIFO       在短时间内持续引用,而后很可能不再使用。  
    也可以使用外部cache如:  
      type="OSCACHE" 
     
  readOnly="true" 
    默认true时缓存效果最好,可以减少更新。  
      
  serialize="false" 
    默认false,设true可以提高整体应用的性能。  
      serialize只能应用于实现了Serializable接口的对象,而且和lazyLoadingEnabled="true"属性冲突。  
        
  flushInterval  
    自动刷新间隔时间。  
 
  flushOnExecute  
    在特定id的操作后,刷新cache,可选操作。  
 
手动刷新缓存  
  [sqlmap].flushDataCache("product-cache")  
    刷新cache当id="product-cache" 
  [sqlmap].flushDataCache()  
    刷新sqlmap内的所有cache 


2.ibatis 拼接sql语句,动态查询
在ibatis中使用安全的拼接语句,动态查询
ibatis比JDBC的优势之一,安全高效
说明文字在注释中
Xml代码
<select id="selectAllProducts" parameterClass="Product" resultMap="ProductResult"> 
  select id,note from Product  
     <dynamic prepend="WHERE"> 
     <!-- isNotNull判断参数是否存在,Integer类型 --> 
          <isNotNull property="id"> 
              <!-- isGreaterThan判断参数是否大于compareValue,isGreaterEquals是大于等于 --> 
              <isGreaterThan prepend=" and " property="id" compareValue="0"> 
              id = #id#  
              </isGreaterThan> 
          </isNotNull> 
          <!-- isNotEmpty判断字串不为空,isEmpty可以判断字串为空 --> 
          <isNotEmpty prepend=" and " property="note"> 
          <!-- 模糊查询不能用#,#在是用prepareStatement的?插入参数,$是文本替换 --> 
          note like '%$note$%'  
          </isNotEmpty> 
      </dynamic> 
</select> 

 
用Map传参数
Xml代码
<select id="selectAllProducts" parameterClass="java.util.HashMap" resultMap="ProductResult"> 
  select id,note from Product  
     <dynamic prepend="WHERE"> 
     <!-- isPropertyAvailable判断属性是否有效 --> 
        <isPropertyAvailable property="id"> 
          <isNotNull property="id"> 
              <!-- isLessThan判断参数是否小于compareValue,isLessEquals是小于等于 --> 
              <isLessThan prepend=" and " property="id" compareValue="10"> 
              id = #id#  
              </isLessThan> 
          </isNotNull> 
        </isPropertyAvailable> 
      </dynamic> 
</select> 


---------------------------------几个常用属性----------------------------------
Xml代码
<isPropertyAvailable> 属性是存在  
<isNotPropertyAvailable> 属性不存在  
<isNull> 属性值是null  
<isEmpty> 判断Collection.size<1或String.length()<1 
<isEqual> 等于  
<isNotEqual> 不等于  
<isGreaterThan> 大于  
<isGreaterEqual> 大于等于  
<isLessThan> 小于  
<isLessEqual> 小于等于
分享到:
评论

相关推荐

    iBATIS缓存

    **iBATIS缓存**是数据库访问框架iBATIS中的一个重要特性,用于提高数据查询的效率,减少不必要的数据库访问。iBATIS缓存分为一级缓存和二级缓存,它们在提升应用程序性能方面起着关键作用。 一级缓存是SqlSession...

    iBATIS缓存介绍

    ### iBATIS缓存介绍 #### 一、缓存介绍 **1.1 缓存对象** 理论上,Web分层设计的各个层都可以有缓存,Web中的任何对象都可以成为缓存的对象。例如: - **HTTP请求结果的缓存**:如页面数据或API响应。 - **...

    解决IBatis缓存动态字段问题

    ### 解决IBatis缓存动态字段问题 #### 背景与问题描述 在使用IBatis框架处理数据库操作时,可能会遇到动态数据表名、动态字段名的情况。这种情况下,由于IBatis的缓存机制,可能导致字段找不到的问题。具体表现为...

    iBATIS缓存的使用方法

    ### iBATIS缓存的使用方法 在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL...

    ibatis 缓存配置策略

    以下是对iBatis缓存配置策略的深入解析: 首先,iBatis 的 Cache 键(key)是由多个因素组成的,包括对象的hashCode、checksum、查询参数、sqlmap ID、SQL语句以及调用方法名。由于这些因素的多样性,即使是微小的...

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

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

    Java ibatis缓存技术

    ### Java ibatis缓存技术详解 #### 一、ibatis缓存概述 ibatis是一款流行的持久层框架,它简化了Java应用程序与数据库之间的交互过程。ibatis提供了多种特性,其中包括缓存机制,这对于提高应用程序的性能至关重要...

    Java_ibatis缓存技术

    本文将深入探讨Java_iBatis缓存技术,包括它的概念、类型、配置以及在实际应用中的注意事项。 首先,缓存是一种存储机制,用于临时存放频繁访问的数据,减少数据库的读取次数,从而提高系统响应速度。在iBatis中,...

    iBATIS缓存介绍[借鉴].pdf

    本文将详细介绍iBATIS缓存的概念、类型以及配置方法。 一.缓存介绍 缓存,简单来说,是为了减少对数据库的频繁访问,将常用数据存储在快速访问的介质中。这有助于降低延迟,提高应用的响应速度。 1.1 缓存对象:...

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

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

    ibatis-缓存使用示例

    总之,iBATIS缓存是提升系统效率的关键技术之一,理解其工作机制并恰当运用,对于构建高效、稳定的应用至关重要。通过"ibatis-缓存使用示例"的学习,开发者能更好地掌握这一技巧,从而在实际项目中发挥出更大的价值...

    Java_ibatis-cache.rar_cache

    本篇将深入探讨iBatis缓存技术,旨在帮助你理解并掌握如何在实际项目中有效应用iBatis缓存。 首先,我们要了解iBatis的缓存分为一级缓存和二级缓存。一级缓存是SqlSession级别的,也称为本地缓存,它存储在...

    ibatis_数据缓存

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

    ibatis培训教程

    - **iBATIS缓存机制**: - 一级缓存: 自动启用,存储在会话级别,用于存储SQL执行的结果。 - 二级缓存: 需要手动启用,存储在映射文件级别,可以在多个会话之间共享数据。 - **缓存配置**: - 在`SqlMapConfig.xml`...

    ibatis 数据缓存.pdf

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

    ibatis开发指南资料

    #### 五、ibatis缓存机制 - **CACHE**:ibatis提供了多种类型的缓存机制,以减少数据库访问次数,提高应用性能。 - **MEMORY类型Cache与WeakReference**:适用于短生命周期的缓存数据。 - **LRU型Cache**:最近...

    J2EE WEB缓存技术详解.doc

    **ibatis缓存机制** - ibatis(现MyBatis)框架也提供了缓存机制,包括一级缓存(本地缓存,类似于JCS的内存区域)和二级缓存(跨SQL会话的缓存,类似JCS的磁盘区域或远程区域)。这表明,缓存机制是提高数据访问...

Global site tag (gtag.js) - Google Analytics