1 SqlMapConfig.xml文档中参数配置
[standalone] 本属性表明XML文档是否是一个独立文档(standalone document)。它的值是根据XML声明(位于文档实体的首部)中的独立文档声明(在XML声明中是可选的)来设定的。如果没有独立文档声明,则该属性没有值(no value)。
关于XML,可以看一下这里的介绍:
http://www.w3china.org/translation/infoset_20011024_cn.htm
XML信息集Unicode中文版
至于cacheModelsEnabled属性指定了SQL Map运行时实例的缓存Model是否开启。
相关:
{
在<settings>元素中提供了多个属性来配置和优化SQL Map运行时的实例:
maxRequests属性指定了同时执行SQL语句最大运行数。
maxSessions属性指定了同一时间内活动的最大Session数。所谓Session就是一个请求或一个SQL Map运行时实例自动获得的会话。
maxTransactions属性指定了最大事务处理的线程数。
cacheModelsEnabled属性指定了SQL Map运行时实例的缓存Model是否开启。
lazyLoadingEnabled属性指定了持久化数据是否延迟加载。
enhancementEnabled属性指定了全局性的启用或禁用字节码增强,以优化访问POJO变量属性的功能。
useStatementNamespaces属性指定了在SQL Map映射文件中是否用全限定名来引用映射声明。
}
2
<settings cacheModelsEnabled="true" />是一定要配置的,不然cache不起作用。
readonly的配置
当readonly为true时,serialize是没有意义的,每个返回的对象就是cache中的对象,所以如果改动了该对象,则cache和数据库就不一致了。当readonly为true是不改动返回值要靠我们人工了。
当readonly为false时,serialize为false时,cache的实体是不需要实现Serializable的,但是很奇怪的
是,其返回的实体不是原本cache中的实体,改动返回值不会影响以后的返回值。serialize为true时,cache的实体是需要实现
Serializable的,其返回值应该是cache中的一个copy,所以可以随便修改而不影响cache。
看一个性能测试,对一行数据读取100000次。
条件 时间(毫秒)
没有cache 53164
readonly=true, 1406
readonly=false,serialize=false, 54538
readonly=false,serialize=true, 4077
结论:
1 可以看出,加入cache后性能提升还是很可观的。
2 readonly=false,serialize=true的cache比readonly=true的慢一点,但是不是很多,想比没有cache的情况还是性能提升很大。
3 奇怪的readonly=false,serialize=false得到了解答,从测试结果看,应该是每一次都是到db直接读的,这个和没有配置cache差不多,又因为一些关于cache的code,应该比没有cache还慢一点点。
分享到:
相关推荐
以下是对iBatis缓存配置策略的深入解析: 首先,iBatis 的 Cache 键(key)是由多个因素组成的,包括对象的hashCode、checksum、查询参数、sqlmap ID、SQL语句以及调用方法名。由于这些因素的多样性,即使是微小的...
iBATIS缓存分为一级缓存和二级缓存,它们在提升应用程序性能方面起着关键作用。 一级缓存是SqlSession级别的缓存,即每个SqlSession对象都有自己的缓存空间。当我们在一个SqlSession中执行SQL查询并获取结果后,...
### iBATIS缓存介绍 #### 一、缓存介绍 **1.1 缓存对象** 理论上,Web分层设计的各个层都可以有缓存,Web中的任何对象都可以成为缓存的对象。例如: - **HTTP请求结果的缓存**:如页面数据或API响应。 - **...
### iBATIS缓存的使用方法 在数据库访问框架iBATIS中,缓存机制是一项重要的功能,它能够显著提高应用程序的性能。本文将详细介绍iBATIS中的缓存使用方法,包括缓存模型的配置、不同类型的缓存控制器以及如何在SQL...
在实际应用中,我们可以通过以下方式配置和使用iBatis缓存: - **启用二级缓存**:在MyBatis的配置文件中启用全局缓存,并在Mapper接口的XML配置文件中添加`<cache>`标签,指定缓存策略。 - **自定义缓存实现**:若...
iBatis 数据缓存机制是提高数据库访问性能的重要手段,它允许将查询结果存储在内存中,以便后续相同查询能够快速获取数据,而无需每次都执行SQL查询。在深入理解iBatis的Cache概念之前,首先需要知道iBatis是一个轻...
标题:“ibatis配置文件” 描述:“详细的ibatis配置文件,初来乍到,先打个招呼...” 在本文中,我们将深入探讨ibatis配置文件的关键...在实际应用中,根据项目需求调整这些参数,可以显著提升系统的性能和稳定性。
6. 缓存:Ibatis提供了本地缓存和二级缓存机制,有助于提高性能。 7. 执行性能:提供优化建议,如批处理、缓存使用等,以提升应用程序的运行效率。 总之,Ibatis是一个强大且灵活的Java持久层框架,其API、文档和...
这是Ibatis的属性配置文件,主要用于存放数据库连接信息和其他配置参数。通常包含以下内容: - `driver`: 数据库驱动类名,例如`com.mysql.jdbc.Driver`。 - `url`: 数据库连接URL,包含了数据库服务器地址、端口...
在ibatis框架中,`sqlMapConfig.xml`是一个非常重要的配置文件,它主要用于设置ibatis的全局配置信息,包括数据库连接信息、环境配置以及其它运行时参数等。下面将对这个文件中的关键元素进行详细的解析。 ##### ...
7. **缓存机制**:Ibatis内置了本地缓存和二级缓存,可以提高数据读取速度。本地缓存作用于单个SqlSession,而二级缓存则可以在多个SqlSession之间共享,但需要注意并发控制和数据一致性问题。 8. **插件支持**:...
7. **缓存机制**:解释iBATIS的缓存策略,包括本地缓存和二级缓存,以及如何自定义缓存实现。 8. **事务管理**:讨论iBATIS如何处理数据库事务,包括自动提交、手动提交和回滚操作。 9. **错误处理与调试**:分享...
3. **配置Ibatis**:在Ibatis的配置文件中,定义一个Memcached的Cache实现,指定缓存的ID、超时时间等参数。 4. **创建缓存插件**:编写自定义的Ibatis拦截器,拦截SQL执行,实现数据的缓存和读取。 5. **在Mapper...
ibatis的核心是其XML配置文件,用于定义SQL映射规则、参数类型和返回类型。通过XML文件,开发者可以清晰地定义每个SQL语句,以及如何将结果集映射到Java对象。这种配置方式使得ibatis非常灵活,能够适应各种复杂的...
5. **缓存**:IBATIS支持本地缓存和全局缓存,可以有效减少数据库访问,提高性能。 6. **事务管理**:讲解了如何使用IBATIS的事务管理功能,包括手动和自动提交、回滚以及事务隔离级别设置。 7. **插件**:IBATIS...
文档会解释如何在iBATIS中配置和使用事务,以及如何与其他事务管理策略(如Spring的声明式事务管理)集成。 iBATIS还支持动态SQL,这意味着你可以根据业务逻辑在运行时构建SQL语句。这大大增强了SQL的灵活性,使得...
总结来说,`ibatis_SqlMapConfig`配置文件是iBATIS框架的中枢,它控制了iBATIS与数据库交互的方式,包括连接池、缓存策略、事务管理、性能优化等关键特性。正确理解和配置这个文件对于提高应用性能和保证数据一致性...
10. **缓存机制**:解析iBatis的缓存功能,包括本地缓存和二级缓存,如何配置和使用,以及缓存的生命周期和更新策略。 11. **动态SQL**:详细阐述如何利用iBatis的动态SQL特性,通过`<if>`, `<choose>`, `<when>`, ...
总之,开发Ibatis需要熟悉其核心类库和相关API,理解XML配置与Mapper接口的关系,掌握动态SQL和参数、结果集映射的技巧,以及如何在Spring环境下进行事务管理和缓存控制。同时,了解MyBatis Generator的使用,能提高...