iBatis SQL Maps入门教程:快速掌握O/R Mapping解决方案

需积分: 10 1 下载量 77 浏览量 更新于2024-09-18 收藏 141KB PDF 举报
iBatis是一个O/R Mapping解决方案,专注于提供一种简单易用且灵活的数据库操作方式。它并不追求过多的复杂功能,对于不需要高级特性的项目来说,iBatis是一个理想的工具。 在深入理解iBatis之前,我们需要知道O/R Mapping(对象关系映射)的概念。O/R Mapping允许开发者用面向对象的方式来操作数据库,将数据库中的记录映射为对象,反之亦然,从而降低了数据访问层的复杂性。iBatis的主要特点在于它的小巧和快速上手,适合那些需要快速开发并希望保持代码简洁的项目。 《iBatis SQL Maps入门教程》是针对初学者的一份快速入门指南,由Clinton Begin撰写,刘涛翻译。该教程覆盖了SQLMap的基本应用,通过一个简单的Person类实例来讲解如何使用iBatis。这个Person类包含了一些基本属性,如id、firstName、lastName等,代表了一个业务对象。 在开始使用iBatis之前,尽管它可以适应不良设计的数据库和对象模型,但为了实现最佳性能和设计,开发者仍应遵循良好的数据库建模和对象建模原则。业务逻辑分析是设计过程的关键,这涉及到识别应用中的业务对象和数据模型,以及它们之间的关系。 iBatis的核心是SQL Map,它定义了SQL查询与Java对象之间的映射关系。在Person类的例子中,每个属性都会对应到数据库表中的列,通过iBatis的XML配置文件或注解来定义这些映射关系。当执行SQL查询时,iBatis会自动将结果集转化为Java对象,或者将Java对象的数据写入数据库。 在实际应用中,开发者需要创建XML配置文件,声明SQL语句,包括插入、更新、删除和查询等操作。同时,也需要在Java代码中引入SQLMap客户端,调用相应的接口来执行SQL操作。例如,使用`selectKey`标签来处理自增主键的获取,或者使用动态SQL来根据条件构建灵活的查询语句。 iBatis提供了一种轻量级的解决方案,使得数据库操作更加直观和高效。它不仅简化了数据访问层的编码工作,还允许开发者直接编写SQL,保持了SQL的灵活性。对于那些对JDBC的繁琐操作感到困扰,或者希望避免过度复杂的ORM框架的项目,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