`
2277259257
  • 浏览: 515417 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

缓存----Ibatis /Hibernate

 
阅读更多

iBatis缓存的使用方法及解释 :以iBatis2.3为例,做以下配置即可实现对某些查询进行缓存

1、<settings lazyLoadingEnabled="false"  cacheModelsEnabled="true"  enhancementEnabled="true" />

    注释:

            lazyLoadingEnabled  延迟加载数据;

            cacheModelsEnabled  全局性启用或关闭SqlMapCilent cache缓存;

            enhancementEnabled  运行时,字节码增强

2、在sqlMap文件中加入cacheModel的配置:

    <cacheModel  id="model-cache" type="MEMORY" readOnly="true" >

       <flushInterval seconds="60"/>
       <flushOnExecute  statement="insertProduct"/>
       <flushOnExecute  statement="updateProduct"/>
       <flushOnExecute  statement="deleteProduct"/>

       <property name="size" value="1000" />
    </cacheModel>

      注意:如果在sqlMapConfig里面设置了useStatementNamespaces="true",那么上面的flushOnExecute中的statement里面需要带上namespace,如<flushOnExecute statement="Product.insertProduct"/>,如果useStatementNamespaces="false",则可以直接按上面的写。

    注释:

            cacheModel的id属性用于后面的statement引用;

            type属性标识采用何种cache方式:

                  MEMORY---使用 reference 类型来管理 cache 的行为。垃圾收集器可以根据 reference类型判断是否要回收 cache 中的数据。MEMORY实现适用于没有统一的对象重用模式的应用,或内存不足的应用

                  LRU---用“近期最少使用”原则来确定如何从 Cache 中清除对象,当 Cache溢出时,最近最少使用的对象将被从 Cache 中清除

                  FIFO---用“先进先出”原则来确定如何从 Cache 中清除对象。当 Cache 溢出时,最先进入 Cache 的对象将从 Cache 中清除。

                  OSCACHE---是OSCache2.0缓存引擎的一个 Plugin。它具有高度的可配置性,分布式,高度的灵活性。 
           flushInterval 属性是配置自动更新缓存的周期,可以是hours,minutes,seconds或milliseconds

           flushOnExecute这是标识什么时候触发更新,statement的名字就是后面的增删改语句的statement的id

3、配置需要进行cache的sql statment:

      <statement id="getProductList"  parameterClass="int"  cacheModel="model-cache">
          select * from PRODUCT where PRD_CAT_ID = #value#
      </statement>

    注释:cacheModel="model-cache"---指定该语句执行上面定义的model-cache缓存

 

分享到:
评论

相关推荐

    ibatis和hibernate的简单介绍

    ### ibatis和Hibernate的简单介绍 #### 一、ibatis简介 ibatis是Apache软件基金会的一个开源项目,它提供了一种轻量级的Java持久层框架。ibatis的核心功能是将SQL语句与Java代码分离,使开发人员可以更加专注于...

    访问数据库基本封装(spring/hibernate/ibatis)

    Hibernate支持事务管理,缓存机制,以及复杂的查询语言HQL,使得开发者能更专注于业务逻辑,而非底层的数据库交互。 然后是iBatis,它介于传统JDBC和完整的ORM框架之间,提供了一种灵活的SQL映射方式。iBatis的核心...

    ibatis-3是一个很不错的持久层框架

    6. **缓存支持**:为了提高性能,Ibatis 提供了本地缓存和二级缓存机制,可以缓存查询结果,减少不必要的数据库访问。 **与Hibernate的比较:** 虽然Hibernate是一款强大的ORM框架,提供了全自动的数据映射和对象...

    iBATIS缓存介绍

    iBATIS的缓存机制与其他ORM框架(如Hibernate)有所不同,它更侧重于SQL级别的缓存,而不仅仅是对象级别的缓存。 #### 三、配置iBATIS缓存 **3.1 cacheModel标签** 用于配置iBATIS的缓存模型。 - **3.1.1 ...

    hibernate3.jar、ibatis-dao-2.jar、spring.jar、struts.jar、log4j-1.2.9.jar

    Hibernate3版本包含了实体管理、会话管理、缓存机制、查询语言HQL等特性,极大地简化了数据库操作,提高了开发效率。 3. **Struts.jar**:这是Struts 1框架的库,一个基于MVC(Model-View-Controller)设计模式的...

    jsp+struct+hibernate+ibatis资源集锦珍藏

    这个压缩包中的"jsp-struct-hibernate-ibatis好书和资源"可能包括了教程、示例代码、最佳实践指南等,可以帮助学习者系统地了解并掌握这四个技术的用法。对于初学者,可以从基础概念和安装配置开始,逐步学习如何...

    iBATIS-SqlMaps-中文教程

    iBATIS旨在提供一种简单、灵活的方式来处理数据库操作,它既不像Hibernate那样完全对象关系映射(ORM),也不像传统的JDBC编程那么繁琐。 2. **环境搭建**:包括安装配置JDK、设置开发环境(如Eclipse或IntelliJ ...

    iBATIS-DAO-2

    例如,对于某个特定的DAO,可以有两个实现版本:一个使用iBATIS SQL Maps框架将对象持久化到数据库,另一个则使用Hibernate框架。或者,有一个DAO为另一个DAO提供缓存服务。根据具体场景(如数据库性能受限或内存...

    springmvc_hibernate_ibatis_jdbc

    标题中的"springmvc_hibernate_ibatis_jdbc"指的是一个整合了SpringMVC、Hibernate、iBatis和JDBC这四种关键技术的Java应用框架。这个框架旨在提供一个全面且强大的解决方案,便于开发人员进行Web应用程序的构建。 ...

    ibatis和hibernate的区别

    ibatis同样提供了事务管理和缓存功能,但对数据库的抽象程度低于Hibernate。 **配置和使用步骤:** 1. 创建SqlMapConfig.xml配置文件,定义数据源、事务管理器等。 2. 编写POJO类和Mapper XML文件,XML文件中定义...

    ibatis 与hibernate之间的比较优点和缺点

    3. **缺乏高级特性:**相较于 Hibernate 提供的高级特性如懒加载、缓存管理等,iBatis 在这些方面相对简单。 #### 总结 1. **学习曲线:**iBatis 相比 Hibernate 学习成本更低。 2. **资源消耗:**iBatis 在资源...

    ibatis与hibernate的区别

    ### ibatis与hibernate的区别 #### 一、概述 在Java开发领域中,持久化技术是连接应用程序与数据库之间的重要桥梁。其中,ibatis(现称为MyBatis)和Hibernate作为两种主流的对象关系映射(Object Relational ...

    Spring MVC+Hibernate&Ibatis学习 例子 教程

    其主要特性包括:对象-关系映射、事务管理、第二级缓存支持和HQL(Hibernate查询语言)。 **iBatis** 则是一个轻量级的数据访问层框架,它介于Java代码和SQL之间,提供动态SQL支持。与Hibernate不同,iBatis并不...

    ibatis-传智播客(缺二个课时)

    6. **iBatis与Hibernate的对比**:虽然两者都是ORM框架,但iBatis更注重SQL的灵活性,而Hibernate则提供了全自动的对象关系映射,牺牲了一定的SQL控制权。 7. **传智播客的iBatis教程**:通常会包含iBatis的安装...

    选用ibatis和hibernate的区别

    2. 定义POJO(Plain Old Java Object)和映射文件,使用工具如muddlegen和hibernate-extensions生成。 3. 编写DAO(Data Access Object),为每个表提供增删改查的方法。 **Ibatis** 相比Hibernate更为灵活,它是一...

    iBatis简明教程及快速入门

    DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN" "http://www.ibatis.com/dtd/sql-map-config-2.dtd"&gt; cacheModelsEnabled="true" enhancementEnabled="true" lazyLoadingEnabled=...

    Ibatis和Hibernate的分析比较

    4. 缓存和事务管理:两者都支持缓存和事务,但Hibernate内置了更强大的管理机制。 在选择Ibatis还是Hibernate时,应考虑项目的具体需求、团队的技术背景和性能要求。对于需要高度控制SQL的项目,或者对性能有严格...

Global site tag (gtag.js) - Google Analytics