`

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>  
    <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>   
    <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  
  <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>  
  <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>  
  <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> 小于等于  


原文来自:雨枫技术教程网 http://www.fengfly.com
原文网址:http://www.fengfly.com/plus/view-37415-1.html

 

分享到:
评论

相关推荐

    IBatis.net 配置各种数据库

    《IBatis.net 配置各种数据库详解》 在软件开发中,数据库的连接与操作是不可或缺的一环。IBatis.net,作为一个轻量级的持久层框架,为开发者提供了灵活的数据映射功能,使得数据库操作变得更为简单。本文将详细...

    ibatis用xml配置文件配置使用

    本篇文章将深入探讨如何使用XML配置文件来配置iBATIS,以解决你在实际开发中可能遇到的各种问题。 首先,我们了解iBATIS的核心概念——映射器(Mapper)。映射器是定义SQL语句的地方,而XML配置文件是映射器的主要...

    ibatis 实例 配置 源码

    ibatis 实例 配置 源码 依赖包 ibatis-2.3.4.726.jar commons-logging-api.jar commons-logging-1.1.jar commons-dbcp-1.2.2.jar commons-pool.jar

    ibatis总配置和映射配置.txt

    此文本主要是关于ibatis总配置和映射配置和一些需要主要的细节。

    ibatis配置文件信息

    ### ibatis配置文件信息 #### 一、简介 在Java开发领域中,ibatis(现称为MyBatis)是一款优秀的持久层框架,它通过XML或注解的方式将接口方法与SQL语句绑定起来,实现对象关系映射(ORM)功能。ibatis的主要优势...

    Ibatis基本配置---[环境搭建

    Ibatis基本配置---[环境搭建

    spring+ibatis事务的配置

    很好的spring+ibatis事务的配置文档.

    ibatis 配置文件详解

    ### ibatis配置文件详解 #### 一、ibatis概述 ibatis,又称MyBatis,是一种优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。ibatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。ibatis可以...

    Spring+ibatis 保留ibatis事务的配置

    ibatis配置文件中,可以看到关于ibatis事务管理器的配置。这里设置事务管理器类型为JDBC,表示ibatis将直接使用底层的JDBC连接进行事务控制,而不是使用Spring提供的事务管理器。 ```xml ``` ...

    Ibatis的应用和配置

    一、Ibatis配置文件 Ibatis的主要配置文件是`mybatis-config.xml`,它是整个系统的全局配置文件。这个文件中包含了数据源、事务管理器、环境配置、Mappers等重要元素的定义。例如: ```xml ...

    ibatis相关配置

    ### Ibatis配置详解 1. **全局配置文件(ibatis-config.xml)** 全局配置文件是Ibatis系统的起点,它包含了数据源、事务管理器、插件、类型别名等整体设置。例如: ```xml &lt;!DOCTYPE configuration PUBLIC "-/...

    ibatis 注解配置文件

    除了这些基本的注解,Ibatis还提供了一些高级特性,如动态SQL、缓存、事务管理等。通过注解,我们可以将这些配置直接嵌入到Java类中,避免了XML配置文件的繁琐。 在提供的压缩包文件中,可能包含了示例代码、配置...

    ibatis sqlmap配置详解

    SqlMap的配置是iBatis中应用的核心。这部分任务占据了iBatis开发的...Sql Map配置文件是iBatis配置的核心,从数据库连接到执行SQL时使用的sqlMap文件都是通过此文件中的配置提供给框架的,它通常命名为sqlMapConfig.xml

    常用ibatis配置

    标题中提到的“常用ibatis配置”指的是在使用iBatis这一数据持久层框架中,常见的配置用法和技术点。iBatis(现称为MyBatis)是一个流行的Java持久层框架,它通过使用XML或注解的方式,将SQL语句与对象进行映射,...

    spring+ibatis配置实例

    "spring+ibatis配置实例"这个项目提供了一个完整的开发环境,包含所需的依赖包和标准化的项目结构,对初学者或开发者来说极具价值。 Spring是一个全面的Java应用框架,它提供了依赖注入(Dependency Injection,DI...

    ibatis配置文件自动加载组件

    标题 "ibatis配置文件自动加载组件" 涉及的核心技术是MyBatis的自动配置加载功能,这在开发过程中极大地提高了效率,使得开发者无需每次修改XML映射文件后手动重启服务。MyBatis是一个优秀的Java持久层框架,它简化...

    ibatis配置文件

    标题:“ibatis配置文件” 描述:“详细的ibatis配置文件,初来乍到,先打个招呼...” 在本文中,我们将深入探讨ibatis配置文件的关键组成部分及其如何影响ibatis框架的运行机制。ibatis(现在通常称为MyBatis)是...

    Struts+Spring+Ibatis环境配置(一) - zwjxf的专栏 - 博

    Struts+Spring+Ibatis环境配置(一) - zwjxf的专栏 - 博

    ibatis 缓存配置策略

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

Global site tag (gtag.js) - Google Analytics