没有合适的资源?快使用搜索试试~ 我知道了~
对于Hibernate一站式的ORM解决方案而言,iBatis之一种半自动化的ORM实现;在一定情况下,这种一站式的ORM解决方案有时候会有一定的问题出现
资源推荐
资源详情
资源评论
IBATIS Developer’s Guide Version 1.0
September 2, 2004 So many open source projects. Why not Open your Documents?
OpenDoc Series’
iBATIS 2.0 开发指南
V1.0
作者:夏昕 xiaxin(at)gmail.com
So many open source projects. Why not Open your Documents? J
IBATIS Developer’s Guide Version 1.0
September 2, 2004 So many open source projects. Why not Open your Documents?
文档说明
参与人员:
作者 联络
夏昕 xiaxin(at)gmail.com
(at) 为 email @ 符号
发布记录
版本 日期 作者 说明
0.0 2004.8.1 夏昕 第一版
1.0 2004.9.1 夏昕 补充 ibatis in Spring 部分
OpenDoc 版权说明
本文档版权归原作者所有。
在免费、且无任何附加条件的前提下,可在网络媒体中自由传播。
如需部分或者全文引用,请事先征求作者意见。
如果本文对您有些许帮助,表达谢意的最好方式,是将您发现的问题和文档改进意见及时反馈给
作者。当然,倘若有时间和能力,能为技术群体无偿贡献自己的所学为最好的回馈。
另外,笔者近来试图就日本、印度的软件开发模式进行一些调研。如果诸位可以赠阅日本、印度
软件研发过程中的需求、设计文档以供研究,感激不尽!
IBATIS Developer’s Guide Version 1.0
September 2, 2004 So many open source projects. Why not Open your Documents?
ibatis 开发指南
ibatis Quick Start............................................................................................5
准备工作 ..........................................................................................................5
构建 ibatis 基础代码 ....................................................................................5
ibatis 配置 ...........................................................................................................11
ibatis 基础语义 ......................................................................................................16
XmlSqlMapClientBuilder...................................................................16
SqlMapClient ...........................................................................................16
SqlMapClient 基本操作示例 ..........................................................16
OR 映射...........................................................................................................19
ibatis 高级特性 ......................................................................................................26
数据关联 ........................................................................................................26
一对多关联 ............................................................................................26
一对一关联 ............................................................................................28
延迟加载 ........................................................................................................30
动态映射 ........................................................................................................31
事务管理 ........................................................................................................35
基于 JDBC 的事务管理机制 ................................................................35
基于 JTA 的事务管理机制 ...................................................................36
外部事务管理.........................................................................................38
Cache..............................................................................................................39
MEMORY 类型 Cache 与 WeakReference........................................40
LRU 型 Cache .......................................................................................42
FIFO 型 Cache ......................................................................................43
OSCache.................................................................................................43
IBATIS Developer’s Guide Version 1.0
September 2, 2004 So many open source projects. Why not Open your Documents?
ibatis 开发指南
相对 Hibernate 和 Apache OJB 等“ 一 站 式 ”ORM 解决方案而言,ibatis 是一种“半
自动化”的 ORM 实现。
所谓“半自动”,可能理解上有点生涩。纵观目前主流的 ORM,无论 Hibernate 还是
Apache OJB,都对数据库结构提供了较为完整的封装,提供了从 POJO 到数据库表的全
套映射机制。程序员往往只需定义好了 POJO 到数据库表的映射关系,即可通过 Hibernate
或者 OJB 提供的方法完成持久层操作。程序员甚至不需要对 SQL 的 熟练掌握,
Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 JDBC 接口加以执
行。
大多数情况下(特别是对新项目,新系统的开发而言),这样的机制无往不利,大有一
统天下的势头。但是,在一些特定的环境下,这种一站式的解决方案却未必灵光。
在笔者的系统咨询工作过程中,常常遇到以下情况:
1. 系统的部分或全部数据来自现有数据库,处于安全考虑,只对开发团队提供几
条 Select SQL(或存储过程)以获取所需数据,具体的表结构不予公开。
2. 开发规范中要求,所有牵涉到业务逻辑部分的数据库操作,必须在数据库层由
存储过程实现(就笔者工作所面向的金融行业而言,工商银行、中国银行、交
通银行,都在开发规范中严格指定)
3. 系统数据处理量巨大,性能要求极为苛刻,这往往意味着我们必须通过经过高
度优化的 SQL 语句(或存储过程)才能达到系统性能设计指标。
面对这样的需求,再次举起 Hibernate 大刀,却发现刀锋不再锐利,甚至无法使用,
奈何?恍惚之际,只好再摸出 JDBC 准备拼死一搏……,说 得 未 免有些凄凉,直接使用 JDBC
进行数据库操作实际上也是不错的选择,只是拖沓的数据库访问代码,乏味的字段读取操作
令人厌烦。
“半自动化”的 ibatis,却刚好解决了这个问题。
这里的“半自动化”,是 相 对 Hibernate 等提供了全面的数据库封装机制的“全自动化”
ORM 实现而言,“全自动”ORM 实现了 POJO 和数据库表之间的映射,以及 SQL 的自动
生成和执行。而 ibatis 的着力点,则在于 POJO 与 SQL 之间的映射关系。也就是说,ibatis
并不会为程序员在运行期自动生成 SQL 执行。具体的 SQL 需要程序员编写,然后通过映
射配置文件,将 SQL 所需的参数,以及返回的结果字段映射到指定 POJO。
使用 ibatis 提供的 ORM机制,对 业务逻辑实现人员而言,面对的是纯粹的 Java 对象,
这一层与通过 Hibernate 实现 ORM 而言基本一致,而对于具体的数据操作,Hibernate
会自动生成 SQL 语句,而 ibatis 则要求开发者编写具体的 SQL 语句。相对 Hibernate 等
“全自动”ORM 机制而言,ibatis 以 SQL 开发的工作量和数据库移植性上的让步,为系统
设计提供了更大的自由空间。作为“全自动”ORM 实现的一种有益补充,ibatis 的出现显
得别具意义。
IBATIS Developer’s Guide Version 1.0
September 2, 2004 So many open source projects. Why not Open your Documents?
ibatis Quick Start
准备工作
1. 下载 ibatis 软件包(http://www.ibatis.com)。
2. 创建测试数据库,并在数据库中创建一个 t_user 表,其中包含三个字段:
Ø id(int)
Ø name(varchar)
Ø sex(int)。
3. 为了在开发过程更加直观,我们需要将 ibatis 日志打开以便观察 ibatis 运作的细节。
ibatis 采用 Apache common_logging,并结合 Apache log4j 作为日志输出组件。在
CLASSPATH 中新建 log4j.properties 配置文件,内容如下:
log4j.rootLogger=DEBUG, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%c{1} - %m%n
log4j.logger.java.sql.PreparedStatement=DEBUG
构建 ibatis 基础代码
ibatis 基础代码包括:
1. ibatis 实例配置
一个典型的配置文件如下(具体配置项目的含义见后):
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig
PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<settings
cacheModelsEnabled="true"
enhancementEnabled="true"
lazyLoadingEnabled="true"
errorTracingEnabled="true"
maxRequests="32"
maxSessions="10"
maxTransactions="5"
useStatementNamespaces="false"
/>
<transactionManager type="JDBC">
剩余47页未读,继续阅读
资源评论
wangxinlin44
- 粉丝: 0
- 资源: 2
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功