1.强烈建议使用parameterClass(除非没必要)。通过提供parameterClass,您可以获得更好的性能,因为如果框架事先知道这个类,就可以优化自身的性能。
2.resultMap中columnIndex 属性的使用,某些JDBC Driver可以大幅提高性能,某些则没有任何效果。
3.不要使用隐式的ResultMap,因为resultClass的自动映射也对性能有轻微的不利影响。因为读取ResultSetMetaData信息会使某些JDBC Driver变慢。
4.涉及到复杂类型属性查询时,如果产生了N+1式select,可以用联合查询和嵌套的属性映射来代替(1:1select),但是,更好的办法是使用延迟加载和字节码增强选项的子查询。但是,如果要缓存查询结果,则使用子查询(N+1式select)来缓存查询结果。(?)
5.尽量避免复杂类型集合属性的使用,这种查询的效率很低(是典型的N+1select)。
6.为了提高性能,最好是手工明确地使用SqlMapClient的startTransaction(),commitTransaction()或rollbackTransaction()来划分事务范围,这样做可以减少连接池的通讯流量和数据库连接的初始化。
7.自己实现分页查询,不要使用iBatis自带的分页查询(queryForPaginatedList)和queryForList(String,int,int)。前者虽然实现了通过rowResult的分页,但是毕竟是通过jdbc的调用,不如直接通过sql语句的分页效率高(这在通过对海量数据库记录表进行查询是会有明显体现);后者更是将全部的记录读出到内存,再通过skip和max参数来分页,效率极低。
分享到:
相关推荐
在项目实践中,合理利用这些特性,可以提高代码的可维护性和性能。不过,由于iBATIS2.0已经不再维护,目前的主流选择是升级到MyBatis,它是iBATIS的下一代产品,拥有更多的增强功能和社区支持。
虽然上述提到的都是两者之间的区别,但在实际的企业应用中,选择ibatis而非Hibernate的原因通常涉及以下几个方面: 1. **特定性能需求**:对于一些高性能的应用场景,企业可能更倾向于使用ibatis,因为它提供了更高...
在使用iBATIS进行项目开发时,你需要掌握以下几个关键步骤: 1. 配置环境:在项目的类路径下添加iBATIS的jar包,同时配置数据源和SqlSessionFactory。 2. 创建SQL Maps:编写XML配置文件,定义SQL语句和结果映射。...
在源码阅读中,我们可以关注以下几个重点: - 如何解析SqlMapConfig.xml并构建环境。 - SqlSession如何创建和管理。 - Executor的执行流程,特别是动态SQL的处理。 - Statement的创建与预编译过程。 - TypeHandler...
在Ibatis 3的核心包中,我们可以找到以下几个关键组成部分和知识点: 1. **SqlSessionFactoryBuilder**:这个类用于构建SqlSessionFactory,它是Ibatis的核心组件,负责创建SqlSessionFactory实例。通过读取配置...
SQLMap的工作流程主要包括以下几个步骤: 1. **配置解析**:读取XML配置文件,解析其中的映射规则。 2. **SQL语句生成**:根据Java对象的属性和映射规则生成对应的SQL语句。 3. **执行SQL语句**:通过数据库连接执行...
- **enhancementEnabled**: 是否启用cglib中已优化的类来提高延迟加载的性能,默认为`true`。 - **lazyLoadingEnabled**: 是否开启延迟加载,默认为`true`。 ##### 2.3 事务管理器与数据源 - **transactionManager...
6. **源码解析**:理解iBATIS和Oracle JDBC驱动的源码可以帮助开发者深入理解底层的工作原理,优化性能,解决可能出现的兼容性或性能问题。 压缩包中的"oracle_jar"可能包含了Oracle的JDBC驱动,这是连接Oracle...
iBATIS SQLMap 2.3.4.741增加了对这一功能的支持,使得开发者可以轻松地实现数据库的读写分离,提高系统的可扩展性和稳定性。 4. **添加数据库方言**:数据库方言是指针对不同数据库系统的特定SQL语法。iBATIS ...
iBATIS相比其他ORM框架,具有以下几个显著优势: 1. **更高的定制性**:直接编写SQL语句的能力使得iBATIS在处理复杂查询时更加灵活。 2. **学习曲线平缓**:对于已经有SQL和Java基础的开发者而言,iBATIS的学习成本...
其中,日志配置通过log4j.properties文件实现,便于观察ibatis的运行细节,对调试和性能优化至关重要。 #### 六、ibatis的适用场景 1. 当现有数据库结构不便公开,或出于安全考虑只提供特定SQL查询时,ibatis的...
iBATIS主要由以下几个关键组件构成: ##### 1. **iBATIS Data Mapper (又称为 SQL Maps)** - **定义**:Data Mapper(SQL Maps)是iBATIS的核心组件之一,它提供了一种简单而灵活的方式用于在Java对象或.NET对象...
学习者可以从以下几个方面入手: 1. 配置解析:分析web.xml和applicationContext.xml等配置文件,理解SpringMVC和iBATIS的配置细节。 2. 控制器逻辑:查看Controller类,了解如何定义处理请求的方法,以及如何与...
Ibatis由以下几个主要组件构成: - **SqlSessionFactory**:这是Ibatis的核心,用于创建SqlSession对象,SqlSession是与数据库进行交互的接口。 - **SqlSession**:执行SQL语句、获取结果集、提交和回滚事务等...
根据提供的文件信息,我们可以深入探讨以下几个关键的知识点:ibatis与Spring框架的集成、不同数据库访问技术的比较分析以及在具体项目中如何选择适合的技术栈。 ### 1. iBatis与Spring框架的集成 #### iBatis简介...
在Ibatis 2.3.0.677 版本中,我们可以看到以下几个核心知识点: 1. **SqlMapConfig.xml配置文件**:这是Ibatis的核心配置文件,包含了数据源、事务管理器、SqlMapClient的配置以及各种SqlMap的引用。在这个版本中,...
它涵盖了以下几个主要知识点: 1. **简介**:解释了Ibatis的基本理念,即SQL映射框架,以及它如何与Spring等其他框架集成。 2. **安装与配置**:介绍了如何将Ibatis纳入到Java项目中,包括Maven依赖的添加、配置...
iBATIS DataMapper的工作流程包括以下几个主要步骤: 1. 参数提供:开发者可以提供一个对象或基本类型作为SQL语句或存储过程的参数。 2. 数据映射执行:通过参数名称和在XML文档中定义的SQL语句或存储过程的名字来...
以下是其中几个重要的元素: ##### 1. `<properties>` 元素 用于指定属性值,这些属性可以被其他元素引用。例如数据库连接信息可以通过这种方式定义。 ##### 2. `<settings>` 元素 定义了iBATIS的行为设置,如...