之前开发中曾用到ibatis,一直想找个时间总结一下,但是一直都没有时间啊.
看了robbin大哥之前的老帖,ibatis最终还是加入apache(http://ibatis.apache.org/index.html)项目了,我想这也算是它的最终归宿吧,至少它的命运相比mysql算是幸运的了.呵呵.当然对于我们这些现在晚辈来讲,也许现在学习它已经过于晚了一些了.但毕竟闻道有先后嘛.
现在开始进入正题(也许下面讲的一些都是废话,但对于初学者去理解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 的出现显
得别具意义。
分享到:
相关推荐
4.3.2 再论内联参数映射 76 4.3.3 基本类型参数 78 4.3.4 JavaBean参数和Map参数 78 4.4 使用内联结果映射和显式结果映射 78 4.4.1 基本类型结果 79 4.4.2 JavaBean结果和Map结果 81 4.5 小结 81 第5章 执行非查询...
再者,敏捷开发是一种以人为核心、迭代和逐步交付的软件开发方法论。它强调适应变化,鼓励团队协作,通过短周期的迭代来快速响应需求变化。敏捷开发的代表性框架有Scrum和Kanban。Scrum采用固定的迭代周期(Sprint)...
综上所述,ibatis作为一种“半自动化”的ORM框架,其核心优势在于提供了一种平衡灵活性与性能的方法论,特别是在复杂数据处理和高性能需求的场景下,ibatis通过手动控制SQL语句的编写,辅以强大的映射和缓存机制,...
### Java EE 开发教程:Spring、iBATIS与Struts框架详解 #### 一、引言 随着互联网技术的快速发展,Web应用程序的需求日益增长。Java EE(Java Platform, Enterprise Edition)作为企业级应用开发的标准平台之一,...
高性能是J2EE应用程序追求的目标,在特定硬件基础上,数据...在对 iBATIS的缓存支持情况进行了介绍和研究的基础上,并结合Spring框架和iBATIS,使用Memcached对iBATIS二级缓存进行了新的实现,使应用的性能得到了很大的提升.
介绍了iBatis SQL Map建立ORM机制的原理和特点,结合某物流系统的开发,给出了SQL Map建立ORM的主要内容,包括映射关系、SQL Map配置文件和SQL Map API等.实践表明,iBatis SQL Map的ORM实现技术非常方便、灵活,并较好地...
集成Spring与 iBATIS框架技术构建基于 J2EE的 WEB应用可以提高 J2EE项目的可重用性.以轻量级 J2EE架构为基础,提出基于 SpringMVC+iBATIS框架的一种 WEB应用,并以生物信息数据库平台设计为例.实践证明,该系统具有良好...
在国内,社交网站的发展历程可以追溯到早期的BBS论坛和QQ空间,再到后来的微博、微信等主流平台。这些平台不仅满足了用户的社交需求,还成为了商业推广、信息传播的重要渠道。随着移动互联网的普及,国内社交网站的...
IBatis.NET 技术是指使用 IBatis.NET 框架来实现软件项目管理系统的持久化层。IBatis.NET 技术能够提供高效、灵活和可扩展的数据访问机制。 5.2 Ajax 技术 Ajax 技术是指使用 Ajax 技术来实现软件项目管理系统的...
通过对比两者的优缺点,如NHibernate的强大的映射能力和自动化管理,以及iBatis.Net的灵活性和性能,提出了ThinkWide框架的需求。需求分析总结出新框架应当具备的特性,包括易用性、可扩展性和高性能,并明确了框架...
引擎,iBATIS framework, and MYSQL database as the main technologies for system design and implementation. The thesis designs and realizes a report management platform based on the MVC framework, with ...
- **数据操作层**:采用iBatis框架实现,便于数据访问与处理。 - **数据层**:使用Oracle数据库进行存储,确保数据安全性和可靠性。 #### 三、关键技术和实现细节 1. **表示层**(ExtJS+HTML) - **技术优势**...
"社交网站毕业设计论文.doc" 本文将详细介绍社交网站的概念、发展状况、需求分析、开发技术、数据库设计和实现方案等相关... Spring 和 iBatis 是社交网站开发中不可或缺的技术,能够提高社交网站的开发效率和质量。
Java与MySQL的结合,展示了如何利用Java的持久层框架(如JPA或iBatis)连接数据库,以及如何设计面向对象的模型来表示业务实体。 4. **毕业论文**: 论文部分提供了对这些管理系统的设计思路、实现技术和性能评估...