::: 技术角
普通文章  S3C2410开发套件简介
普通文章  详论JAVA对象的初始化过程
普通文章  Struts 概述
普通文章  JSF 简介
普通文章  Spring 概述
普通文章  Hibernate 概述
普通文章  EJB3.0规范概述
当前位置: 首页 >> 技术角 >> iBatis 概述
iBatis 概述

作者:管理员     来源:ITJob就业培训网     发表时间:2006-08-18     浏览次数:    
字号:        打印  推荐  收藏  关闭窗口
iBatis 概述
  iBatis是一个功能强大的,非常有用的SQL Map工具,不同于ORM工具(如hibernate),它是将SQL语句映射成Java对象,而对于ORM工具,它的SQL语句是根据映射定义生成的。
iBatis和hibernate各有用途,如果你开始一个新的项目,对于领域对象模型和数据库设计拥有完全的控制权,hibernate是一个很好的ORM工具。但如果你要访问一个第三方数据库,或使用一个已有系统的数据库,或是一个设计很糟糕的数据库,ORM工具很难应付由此带来的复杂性。在这种情况下,iBatis就非常有用。
还有,如果你的开发小组熟悉面向对象的开发模式并熟悉hibernate,你可以使用hibernate。而如果你的开发小组只熟悉SQL,并且不熟悉hibernate,建议你使用iBatis,毕竟使用iBatis要简单得多。只要熟悉SQL,会使用XML,即可使用iBatis,而使用hibernate,需要熟悉hibernate特有的查询语言HQL,虽然也比较简单。

相对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 的出现显得别具意义。
责任编辑:管理员
  打印本文  推荐本文  加入收藏  返回顶部  关闭窗口
上一篇: 深港两地软件外包及人才合作会议下一篇: Struts 概述
□ 最新文章
普通文章  S3C2410开发套件简介 09-27
普通文章  详论JAVA对象的初始化过程 09-08
普通文章  Struts 概述 09-04
普通文章  JSF 简介 11-28
普通文章  Spring 概述 08-25
普通文章  Hibernate 概述 08-25
普通文章  EJB3.0规范概述 08-25
普通文章  AJAX简介 08-18
普通文章  WebWork 概述 08-18
普通文章  iBatis 概述 08-18
□ 推荐文章
□ 热点文章
普通文章  Struts 概述 09-04
普通文章  S3C2410开发套件简介 09-27
普通文章  Spring 概述 08-25
普通文章  JSF 简介 11-28
普通文章  Hibernate 概述 08-25
普通文章  详论JAVA对象的初始化过程 09-08
普通文章  AJAX简介 08-18
普通文章  EJB3.0规范概述 08-25
普通文章  WebWork 概述 08-18
普通文章  iBatis 概述 08-18
ITjob就业培训网? ITjob就业培训基地? 深圳培训|IT培训|就业培训|JAVA培训|C/C++培训|嵌入式培训|J2EE培训|.Net培训
JAVA学习|C语言学习|C++学习|嵌入式学习|.Net学习|手机游戏学习|网络游戏学习|J2ME学习|J2EE学习
常用手册:Mysql Ant Struts PHP JDK Hibernate Spring JSF
地址:深圳市福田区上沙创新科技园13栋4-6层 E-Mail: 汇款方式 | 邮箱 | 搜索 | 报名咨询
中国总机:4008100100就业培训
联系电话:0755-25630755 25605455 13534043417
在线咨询QQ:湖北河南365935157 其他地区632747101
粤ICP备05007909号