iBATIS
一词来源于“
internet
”和“
abatis
”的组合,是一个由
Clinton
Begin
在2001
年发起的开放源代码项目。最初侧重于密码软件的开发,现在是一个基于
Java
的持久层框架。
iBATIS
提供的持久层框架包括
SQL
Maps
和
Data
Access
Objects
(
DAO
),同时还提供一个利用这个框架开发的
JPetStore
实例。
相对
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 与 hibernate 之间的比较:优点和缺点 #### 概述 在 Java 开发领域中,对象关系映射(Object Relational Mapping,简称 ORM)是一种将面向对象编程语言中的对象模型与数据库系统中的关系模型相互转换的...
在Java开发中,ibatis和Hibernate都是常见的对象关系映射(ORM)框架,它们简化了数据库操作,将Java对象与数据库表之间的映射关系抽象出来,使得开发人员可以使用面向对象的方式处理数据。然而,两者在设计理念和...
1. **自动化的ORM映射**:Hibernate能够自动将Java对象映射到数据库表,并且提供了丰富的映射选项。 2. **强大的查询语言**:Hibernate提供了一种名为HQL(Hibernate Query Language)的查询语言,它类似于SQL但更加...
其中,ibatis(现称为MyBatis)和Hibernate作为两种主流的对象关系映射(Object Relational Mapping, ORM)框架,在实际应用中各有优势与不足。本文将详细阐述ibatis与hibernate之间的主要区别,帮助开发者更好地...
**Hibernate** 则是一个更全面的对象关系映射框架,它提供了一种自动化的对象持久化机制,将Java对象直接映射到数据库表,简化了数据库访问。Hibernate通过实体类、持久化注解或者XML配置文件定义对象与数据库表的...
iBatis与Hibernate都是Java领域内流行的ORM(Object-Relational Mapping,对象关系映射)框架,用于简化Java应用程序与数据库之间的交互。尽管它们有着相似的目标,但在实现方式、设计理念等方面存在显著差异。 ###...
iBatis 是一个 SQL 映射框架,它允许开发者将 SQL 查询直接写入 XML 文件或注解中,从而与 Java 代码解耦。这使得数据库查询更灵活,避免了传统的 JDBC 编程的繁琐。iBatis 可以与 ORM(对象关系映射)框架如 ...
Hibernate是一个对象关系映射(ORM)框架,它简化了Java应用与关系数据库之间的交互。Hibernate通过映射Java类到数据库表,自动处理SQL的生成和执行,使得开发者可以专注于业务逻辑而不是数据库操作。在某些场景下,...
Hibernate通过XML文件或注解将Java类与数据库表进行映射,简化了数据库操作。主要组件包括: 1. **configuration对象**:Configuration类用于管理Hibernate的配置信息,如数据库URL、用户名、密码、JDBC驱动和...
在IT行业中,数据库持久化是开发过程中的关键环节,Ibatis和Hibernate是两种广泛使用的Java持久层框架。它们都致力于简化数据库操作,让开发者能够更专注于业务逻辑而不是繁琐的SQL语句编写。以下是对这两个框架的...
Hibernate是另一个著名的ORM框架,它自动处理对象和数据库之间的映射,提供了透明的数据访问。Hibernate支持JPA规范,具有丰富的查询语言HQL和 Criteria API,可以极大提升开发效率。 本中文教程将详细讲解这四个...
4. 运行效率:不考虑缓存的情况下,iBatis通常比Hibernate更快,因为它减少了与数据库的交互次数。但若需考虑缓存,两者都有各自的局限,且管理起来较为复杂。 5. 数据库支持:iBatis对不同数据库的支持不如...
首先,Hibernate是一个全面的对象关系映射框架,它简化了Java应用程序与数据库之间的交互。通过Hibernate,开发者可以用面向对象的方式处理数据,而无需直接编写SQL语句。Hibernate的核心组件包括Configuration对象...
iBatis是一个优秀的Java持久层框架,它主要负责数据库的交互,通过XML或注解方式配置和映射SQL,使得开发者能够将精力集中在业务逻辑上,而不是繁琐的JDBC代码。iBatis的核心思想是将SQL语句和Java代码分离,提供了...
3. **Hibernate**:Hibernate是一个强大的ORM(对象关系映射)框架,用于简化数据库操作。它允许开发者用Java对象来表示数据库中的记录,通过HQL(Hibernate查询语言)或SQL进行数据操作,降低了数据库操作的复杂性...
Hibernate 是一个对象关系映射(ORM)框架,用于简化 Java 应用程序与数据库之间的交互。它提供了对 SQL 的抽象,允许开发者以对象的方式处理数据库操作。Hibernate 自动管理数据库会话,提供缓存机制,提高了性能,...
**iBatis** 是一个SQL映射框架,它允许开发者编写自定义的SQL语句,而不是依赖于ORM(对象关系映射)工具生成的SQL。iBatis 将SQL与Java代码分离,使数据库查询更加灵活和可控。 **Hibernate** 是一个流行的ORM框架...
在IT行业中,数据库操作是应用程序开发的核心部分,而MyBatis、iBatis和Hibernate都是流行的Java持久层框架,它们简化了与数据库交互的过程。这三个框架各有特点,但都提供了ORM(对象关系映射)机制,帮助开发者将...
Hibernate则是一个强大的ORM(对象关系映射)框架,它简化了数据库操作;而Ibatis则是一个轻量级的数据访问层框架,它介于SQL和Java代码之间,允许开发者编写动态和灵活的SQL。 标题“spring与hibernate以及ibatis...