iBATIS SQL Map开发指南

4星 · 超过85%的资源 需积分: 22 3 下载量 126 浏览量 更新于2024-07-30 收藏 983KB PDF 举报
"iBATIS SQL Mapping 开发指南" 这篇文档是关于iBATIS SQL Maps的开发指南,主要介绍了如何使用iBATIS这个轻量级的持久层框架来简化Java应用对关系数据库的访问。iBATIS通过XML配置文件将Java Bean与SQL语句进行映射,使得开发者可以专注于SQL的编写,而不必过多地关注数据访问的底层细节。 iBATIS SQL Maps的核心概念是将Java Bean对象与SQL语句关联起来,通过XML配置文件来定义这些关联规则。SQL Maps的工作原理是:在运行时,iBATIS会解析XML配置文件,根据其中的定义执行相应的SQL语句,并将结果自动绑定到Java对象上。这极大地减少了手写数据访问代码,提高了开发效率。 在使用iBATIS SQL Maps时,你需要了解以下关键点: 1. **JAR文件和依赖性**:为了运行iBATIS,你需要包含对应的JAR文件,并确保它们与其他依赖库的兼容性。 2. **升级指南**:对于从1.x版本升级到2.0的用户,文档提供了转换XML配置文件的方法和使用新JAR文件的步骤。 3. **SQLMap XML配置文件**:这是iBATIS的核心配置,包括了数据库连接、事务管理器、数据源等设置。例如,`<properties>`用于定义外部属性文件,`<setting>`用来设置全局配置,`<typeAlias>`用于别名定义,`<transactionManager>`和`<datasource>`配置数据库连接,而`<sqlMap>`元素则包含了具体的SQL映射。 4. **SQLMap XML映射文件**:这些文件定义了SQL语句和Java Bean之间的映射关系。`<mappedStatements>`包含了所有的SQL语句定义,其中`<statement>`定义了SQL语句的类型(如INSERT、UPDATE、SELECT等)、SQL内容以及参数和结果的映射。 5. **参数和结果映射**:`<parameterClass>`和`<resultClass>`用于指定输入参数和输出结果的Java类型。`<parameterMap>`和`<resultMap>`允许更复杂的映射,如Map类型参数和嵌套的结果集。 6. **自动生成的主键**:iBATIS支持在插入记录后自动获取生成的主键值。 7. **存储过程**:除了标准的SQL语句,iBATIS也支持调用数据库的存储过程。 8. **避免N+1 Select问题**:通过使用`<cacheModel>`和延迟加载机制,可以有效地处理一对一、一对多和多对多的关系,以减少数据库查询次数,提高性能。 9. **复杂类型输入和输出**:iBATIS能处理包括基本类型、Map类型以及复杂自定义类型的输入参数和输出结果,支持多层属性的映射。 iBATIS SQL Maps提供了一种简单而强大的方式来管理Java应用与关系数据库之间的交互,通过XML配置文件的灵活性,开发者可以定制化SQL操作并优化数据访问性能。这份开发指南详细地解释了如何配置和使用iBATIS,是学习和掌握该框架的重要参考资料。
2011-11-29 上传
简介.................................................................................................................................................4 关于本文..................................................................................................................................4 SQL Maps (com.ibatis.sqlmap.*)......................................................................................................5 SQL Map的概念......................................................................................................................5 SQL Map如何工作?..............................................................................................................5 安装SQL Maps........................................................................................................................6 JAR文件和依赖性...................................................................................................................6 从1.x版本升级........................................................................................................................7 是否应该升级...................................................................................................................7 转换XML配置文件(从1.x到2.0)...........................................................................7 使用新的JAR文件..........................................................................................................8 SQL Map XML配置文件..............................................................................................................10 <properties>元素....................................................................................................................11 <setting>元素.........................................................................................................................11 <typeAlias>元素.....................................................................................................................13 <transactionManager>元素....................................................................................................13 <datasource>元素...........................................................................................................14 <sqlMap>元素........................................................................................................................15 SQL Map XML映射文件..............................................................................................................17 Mapped Statements.................................................................................................................18 Statement的类型............................................................................................................18 SQL 语句.......................................................................................................................19 自动生成的主键.............................................................................................................20 存储过程.........................................................................................................................20 parameterClass................................................................................................................21 parameterMap.................................................................................................................21 Inline Parameter简介.....................................................................................................22 resultClass......................................................................................................................22 resultMap.......................................................................................................................23 cacheModel.....................................................................................................................23 xmlResultName...............................................................................................................24 Parameter Map 和 Inline Parameter......................................................................................24 <parameter>元素............................................................................................................25 Inline Parameter Map......................................................................................................26 基本类型输入参数.........................................................................................................27 Map类型输入参数........................................................................................................28 Result Map.............................................................................................................................28 隐式的Result Map.........................................................................................................30 基本类型的Result(即String,Integer,Boolean)..................................................31 http://www.ibatis.com Clinton Begin 著 刘涛(toleu@21cn.com) 译 开发指南 iBATIS SQL Maps Page 3 of 62 Map类型的Result.........................................................................................................31 复杂类型属性(即自定义类型的属性).............................................................................32 避免N+1 Select(1:1).......................................................................................................33 延迟加载 VS 联合查询(1:1)...................................................................................33 复杂类型集合的属性.............................................................................................................34 避免N+1 Select(1:M和M:N)........................................................................................34 组合键值或多个复杂参数属性.............................................................................................35 支持Parameter Map和Result Map的数据类型..................................................................36 缓存Mapped Statement结果集.............................................................................................36 只读 VS 可读写............................................................................................................37 Serializable可读写缓存.................................................................................................37 缓存类型.........................................................................................................................38 动态Mapped Statement..........................................................................................................41 二元条件元素.................................................................................................................42 一元条件元素.................................................................................................................43 其他元素.........................................................................................................................43 简单的动态SQL元素...................................................................................................44 使用SQL Map API编程................................................................................................................46 配置SQL Map........................................................................................................................46 事务处理................................................................................................................................46 自动的事务处理.............................................................................................................47 全局(分布式)事务.....................................................................................................48 批处理....................................................................................................................................49 用SqlMapClient执行SQL语句...........................................................................................49 代码例子................................................................................................................................52 例子1:执行update(insert,update,delete).........................................................52 例子2:查询成对象(select).....................................................................................52 例子3:用预赋值的结果对象查询成对象(select).................................................52 例子4:查询成对象List(select)..............................................................................52 例子5:自动提交..........................................................................................................53 例子6:用结果集边界查询成对象List(select)......................................................53 例子7:用RowHandler执行查询(select)..............................................................53 例子8:查询成Paginated List(select).....................................................................53 例子9:查询成Map(select)....................................................................................53 用Jakarta Commons Logging记录SQL Map日志......................................................................54 配置日志服务.........................................................................................................................54 Java Bean简易教程.......................................................................................................................56 Resources(com.ibatis.common.resource.*)...............................................................................58 SimpleDataSource(com.ibatis.common.jdbc.*)........................................................................60 ScriptRunner (com.ibatis.common.jdbc.*).....................................................................................62