`

iBatis “半自动”ORM

阅读更多

实现一、iBatis是什么?
iBATIS一词来源于“internet”和“abatis”的组合,是一个由Clinton Begin在2001年发起的开放源代码项目,最初侧重于密码软件的开发,现在是一个基于Java的持久层框架,iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO),同时还提供一个利用这个框架开发的JPetStore实例,相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现,iBATIS需要开发人员自己来写sql语句,这可以增加了程序的灵活性,在一定程度上可以作为ORM的一种补充,程序设计人员应该结合自己的项目的实际情况,来选择使用不同的策略.
iBATIS和Hibernate都做了映射,但iBATIS是把实体类和sql语句之间建立了映射关系,这种策略可以允许开发人员自己来写合适的sql语句,而Hibernate在实体类和数据库之间建立了映射关系,sql对于开发人员是不可见的,对于那些数据量非常大的应用,无法去优化sql语句,所以在实际应用中,应该根据不同的应用场景,来选择适合自己的框架.
所谓“半自动”,可能理解上有点生涩,纵观目前主流的 ORM,无论 Hibernate 还是Apache OJB,都对数据库结构提供了较为完整的封装,提供了从 POJO 到数据库表的全套映射机制,程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过 Hibernate或者 OJB 提供的方法完成持久层操作,程序员甚至不需要对 SQL 的熟练掌握, Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的 SQL 并调用 JDBC 接口加以执行.

二、iBatis与Hibernate的比较
  大多数情况下(特别是对新项目,新系统的开发而言),这样的机制无往不利,大有一统天下的势头
但是,在一些特定的环境下,这种一站式的解决方案却未必灵光.
  在系统咨询工作过程中,常常遇到以下情况:
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的优势和特点
1. iBatis优势 iBatis是一个混合性的解决方案,吸取了这些所有解决方案中最有价值的思想,并将他们融会贯通.
方案 相同的优点 解决的问题 proc 支持对proc 的直接调用,业务逻辑从数据库中分离出来,程序有更好的易植性,内联sql 允许sql以最自然的方式书写,没有字符串拼接,没有参数设置,没有结果获取,对应用程序的代码没有任何的影响;o/rm Ibatis有许多o/rm工具一样的特性,高速缓存,运行时生成代码,延迟加载等,可用于任意数据模型和对象模型的组合,javavBean或业务类,动态 sql Ibatis支持动态sql来处理查询,不要求sql被写成一堆字符串
2. iBatis的特点
o/rm通过java对和Db之间的映射,而Ibatis通过sql与数据库的映射,通过sql的查询参数和结果来和java对象映射,总结:(1)容易上手(2)生产效力高(3)性能好(4)分工明确(5)支持java,.net,ruby (6)开源

分享到:
评论

相关推荐

    ibatis半自动化orm映射

    标题 "ibatis半自动化ORM映射" 涉及的核心技术是iBatis,这是一个流行的Java数据访问框架,用于实现对象关系映射(ORM)。ORM的主要目标是将数据库操作与业务逻辑解耦,使得开发人员可以更专注于业务代码,而无需...

    基于半自动化iBatis的轻量级ORM改进研究

    《基于半自动化iBatis的轻量级ORM改进研究》这一主题聚焦于如何优化和增强iBatis这一轻量级对象关系映射(ORM)框架的自动化程度,以提高开发效率和代码质量。iBatis作为Java开发中的一个流行工具,它允许开发者将...

    ibatis 自动生成插件

    标题 "ibatis 自动生成插件" 描述了一个用于简化IBATIS ORM框架开发的工具,它能够自动生成针对数据库表的增、删、改操作的XML配置文件和SQL语句,以此提升开发效率。IBATIS是一款流行的数据持久层框架,它允许...

    ibatis开发指南 经典教材

    ibatis,作为一款“半自动化”的对象关系映射(Object-Relational Mapping,简称ORM)工具,其设计理念与传统的ORM框架如Hibernate和Apache OJB有所不同。它在提供一定程度的自动映射功能的同时,也保留了对SQL语句...

    ibatis教程,ibatis帮助文档

    相对于全自动化ORM解决方案如Hibernate,iBATIS被称为“半自动化”ORM实现,因为它允许开发者直接编写SQL语句,保持对数据库查询的精细控制。 一、iBATIS的核心要素——SQL Maps SQL Maps是iBATIS的核心,通过XML...

    ibatis开发指南

    与Hibernate等全自动化ORM框架不同,ibatis被描述为一种“半自动化”的ORM实现,这意味着开发者仍然需要编写SQL语句,但可以通过ibatis简化与数据库的交互。 #### 二、ibatis快速入门 ##### 2.1 准备工作 在开始...

    ibatis ACCP.PPT

    Ibatis作为半自动ORM框架,允许开发者直接编写SQL,通过配置文件将SQL与Java对象映射,解决了这些问题。 Ibatis的核心概念是将O(对象)与R(关系)的映射保持不变,但减弱了M(映射)的部分。它不自动生成SQL,...

    Ibatis中文版教程

    iBatis是一个半自动的ORM框架,这意味着它不会完全抽象数据库的操作,而是提供了一种将Java对象与SQL语句之间进行映射的方式。这使得开发者能够更加灵活地控制SQL语句的生成,同时也保持了对象模型的清晰性和可维护...

    J2EE iBatis 概述

    iBatis作为一种“半自动化”的ORM实现,为开发人员提供了一种在保持SQL灵活性的同时简化对象映射的方式。相较于全自动化ORM工具(如Hibernate),iBatis更适合于那些需要精细控制SQL语句或在已有系统基础上进行开发...

    ibatis 开发指南,开发手册 txt 版

    - 与Hibernate和Apache OJB相比,iBatis更侧重于提供半自动化的ORM解决方案。 - Hibernate和OJB提供了全自动化对象关系映射,而iBatis则允许开发者手动编写SQL语句,并将结果集映射到Java对象上。 - **特点**: - ...

    ibatis基础教学文档

    它主要用于简化JDBC编程,提供一种“半自动化”的ORM(对象关系映射)实现,与Hibernate等“一站式”ORM解决方案相比,iBATIS强调的是SQL的灵活性和可控性。 在理论体系中,iBATIS的核心价值在于SQL Maps。SQL Maps...

    ibatis教程.ppt

    iBATIS是一个由Clinton Begin创建,目前由Apache基金会支持的持久化框架,它专注于数据库访问层的加速,提供了一种半自动ORM(对象关系映射)解决方案。相对于Hibernate等一站式ORM解决方案,iBATIS允许开发者更灵活...

    ibatis Guide

    ibatis,作为一种“半自动化”的ORM(Object-Relational Mapping,对象关系映射)框架,不同于Hibernate和Apache OJB等提供全面数据库封装的“一站式”ORM解决方案,它更侧重于SQL与POJO(Plain Old Java Object,...

    Ibatis简单案例

    Ibatis可以被看作是一个半自动的ORM(对象关系映射)框架,它能够将SQL语句绑定到POJOs(Plain Old Java Objects,普通Java对象)上,使得开发者能更专注于业务逻辑而不必关心底层的数据访问细节。 在这个"Ibatis...

    Java_Web_核心框架之_iBATIS

    iBATIS,作为一个半自动的ORM框架,相较于Hibernate提供了更加灵活和可控的数据库交互方式。本文将深入探讨iBATIS的基本概念、特点以及如何入门配置。 iBATIS的核心理念在于,它不负责生成SQL语句,而是允许开发者...

    J2EE学习 Ibatis开发资料共享 Ibatis开发资料 Ibatis学习框架 Ibatis开发概要

    Ibatis是一款半自动化的ORM(Object Relational Mapping)框架,它不像Hibernate等其他ORM工具那样提供完全自动化的数据库操作,而是更侧重于SQL语句的手动编写与参数结果的映射。这种方式虽然在一定程度上增加了...

    ibatis最新最全开发指南

    总的来说,Ibatis 虽然不如 Hibernate 等一站式 ORM 解决方案那样全自动,但它在特定场景下,如处理已有数据库、强制使用存储过程、对性能有极高要求的情况下,能更好地满足开发者的需求。其半自动化的特性让开发者...

    iBatis开发资料

    所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate 还是 Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO 到数据库表的全 套映射机制。程序员往往只需定义好了POJO 到数据库表...

Global site tag (gtag.js) - Google Analytics