`
xiaolong0211
  • 浏览: 332607 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

ibatis基本知识

阅读更多

相对Hibernate和Apache OJB 等“一站式”ORM解决方案而言,ibatis 是一种“半
自动化”的ORM实现。
所谓“半自动”,可能理解上有点生涩。纵观目前主流的ORM,无论Hibernate 还是
Apache OJB,都对数据库结构提供了较为完整的封装,提供了从POJO 到数据库表的全
套映射机制。程序员往往只需定义好了POJO 到数据库表的映射关系,即可通过Hibernate
或者OJB 提供的方法完成持久层操作。程序员甚至不需要对SQL 的熟练掌握,
Hibernate/OJB 会根据制定的存储逻辑,自动生成对应的SQL 并调用JDBC 接口加以执
行。

iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。

iBATIS不同于一般的OR映射框架(eg:hibernate)。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射。iBATIS则是将SQL查询的参数和结果集映射到类。因此可以说,iBATIS做的是SQL Mapping的工作。它把SQL语句看成输入以及输出,结果集就是输出,而where后面的条件参数则是输入。iBATIS能将输入的普通POJO对象、Map、XML等映射到SQL的条件参数上,同时也可以将查询结果映射到普通POJO对象(集合)、Map、XML等上面。iBATIS使用xml文件来映射这些输入以及输出。能大大减少数据库存储部分的代码量,而且可以非常方便的利用SQL中的一些小技巧。废话不说了,直接看源码吧,见附件有sql文件这里提供的是mysql数据库。直接下载后导入就可以直接使用。



iBATIS是以SQL为中心的持久化层框架。能支持懒加载、关联查询、继承等特性。iBATIS不同于一般的OR映射框架。OR映射框架,将数据库表、字段等映射到类、属性,那是一种元数据(meta-data)映射。iBATIS则是将SQL查询的参数和结果集映射到类。所以,iBATIS做的是SQL Mapping的工作。

 

    它把SQL语句看成输入以及输出,结果集就是输出,而where后面的条件参数则是输入。iBATIS能将输入的普通POJO对象、Map、XML等映射到SQL的条件参数上,同时也可以将查询结果映射到普通POJO对象(集合)、Map、XML等上面。iBATIS使用xml文件来映射这些输入以及输出


iBATIS是什么呢?我们先来看看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 接口加以执行。

iBATIS是什么还要从它强大的功能出发,大多数情况下(特别是对新项目,新系统的开发而言),这样的机制无往不利,大有一统天下的势头。但是,在一些特定的环境下,这种一站式的解决方案却未必灵光。在笔者的系统咨询工作过程中,常常遇到以下情况:

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 的出现显得别具意义


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/luweifeng1983/archive/2009/08/06/4414169.aspx

分享到:
评论

相关推荐

    ibatis基本架包

    这两个JAR文件共同构成了Ibatis的基本运行环境,开发者可以利用它们来构建数据访问层,实现高效且易于维护的数据库操作。在实际项目中,通常还需要结合其他依赖,如数据库驱动,以及Spring等框架进行整合使用。

    ibatis基础知识详解

    **Ibatis基础知识详解** Ibatis,全称MyBatis,是一个优秀的开源持久层框架,它支持定制化SQL、存储过程以及高级映射。在Java应用中,Ibatis...对于Java开发者来说,掌握Ibatis的基本知识是提升开发效率的重要一步。

    ibatis demo,ibatis例子,ibatis示例

    在"ibatis demo"中,我们通常会看到以下核心概念和知识点: 1. **配置文件**:Ibatis的配置文件(mybatis-config.xml)是整个框架的入口,它包含了数据源、事务管理器、SqlSessionFactory等重要设置。数据源定义了...

    Ibatis3手册 Ibatis3参考手册

    通过上述内容,我们可以了解到Ibatis3的基本工作原理及其配置方式。Ibatis3以其灵活性和高效性在众多ORM框架中脱颖而出,特别适合那些对SQL查询有特殊需求或者需要精细化控制的应用场景。希望本文能够帮助开发者更好...

    ibatis api 帮助文档+IBATIS 开发文档

    本篇将详细介绍IBATIS API和开发文档中的关键知识点。 **一、IBATIS API** `ibatis-api.chm`是IBATIS的API帮助文档,它包含了所有核心类和接口的详细说明,是理解和使用IBATIS的基础。以下是一些主要组件和概念: ...

    ibatis

    "ibatis in action" 暗示这可能是一本关于如何有效使用iBATIS的实战指南,通常这类书籍会深入讲解框架的各个方面,包括安装配置、基本概念、映射文件、事务管理、动态SQL以及最佳实践等。 标签 "教程" 指出这是一个...

    ibatisDemo 入门源码

    接下来,我们将深入探讨IbatisDemo中的关键知识点。 一、Ibatis框架简介 Ibatis是由MyBatis团队开发的一款轻量级Java ORM(Object-Relational Mapping)框架,它的核心理念是将SQL语句与Java代码分离,使得SQL与...

    ibatis教程 输入参数详解

    标题:ibatis教程 输入参数详解 描述:ibatis教程 输入参数详解 ibatis快速入门 ...通过上述知识点的学习,可以深入理解ibatis的工作原理,掌握ibatis的基本使用方法,为开发高性能的Java数据库应用打下坚实的基础。

    ibatisDemo.zip

    1. 掌握Ibatis的基本架构和配置。 2. 学习如何创建Mapper接口和XML配置文件,以及它们之间的关系。 3. 理解Ibatis的参数映射和结果映射机制。 4. 实践动态SQL的编写,了解条件标签的使用。 5. 探索Ibatis的缓存机制...

    ibatis 开发指南 2004

    1. **iBatis简介**:介绍iBatis的基本概念,作为一款轻量级的数据持久层框架,如何简化传统JDBC的复杂性,提供更直观的数据库操作方式。 2. **配置文件**:讲解iBatis的核心配置文件(mybatis-config.xml),包括...

    IBATIS_IN_ACTION

    - **综合应用**:通过实例演示iBATIS在复杂项目中的集成与应用,帮助读者将理论知识转化为实践能力。 ### iBATIS.NET QuickStart 除了针对Java的详细讲解外,本书还提供了iBATIS.NET的快速入门指南,对于.NET平台...

    ibatis官方资料及所需要的Jar包

    Ibatis,全称为MyBatis,是一款优秀的Java持久层框架,它主要解决了对象与关系数据库之间的映射问题,使得开发者...所以,这套ibatis官方资料大全是学习Ibatis的宝贵资源,建议开发者仔细研读并熟练掌握其中的知识点。

    ibatis课件

    标签“iBatis课件”明确了这个压缩包的主要内容,意味着其中包含的教育资源主要围绕iBatis框架展开,可能涵盖了框架的基本概念、核心组件、事务管理、映射文件配置、结果集映射、动态SQL、缓存机制、与Spring的整合...

    Ibatis 练习Demo和笔记

    在提供的压缩包中,"Ibatis 学习笔记.docx"可能是对以上知识点的详细文档,包含了学习过程中的总结和例子,适合阅读理解。而"IbatisStudy"可能是一个示例项目,包含了一个简单的Ibatis应用场景,如用户管理模块,...

    ibatis in action 中文版7ibatis in action 中文版7

    因此,下面将围绕《ibatis in action》这本书来展开介绍,并结合ibatis框架的基本概念、用途及应用场景等方面进行详细讲解。 ### 一、ibatis简介 ibatis是一个基于Java的开源持久层框架,用于简化数据访问层(Data...

    ibatis案例

    在这个“ibatisDemo”中,我们可能会看到以下几个关键知识点: 1. **SqlMapConfig.xml**:这是Ibatis的核心配置文件,它包含了数据源设置、事务管理器配置以及Mapper文件的引用等信息。开发者可以通过这个文件配置...

    IBatis完成单表基本的数据库操作 模糊查询

    通过阅读博客全文,你可能会学习到更多关于如何有效地使用iBatis进行数据库操作和优化查询性能的知识。 综上所述,iBatis提供了一种简单、灵活的方式来处理数据库操作,特别是像模糊查询这样的复杂查询。通过将SQL...

    经典开源插件之ibatis

    1. **ibatis的基本概念与特点** - **持久层框架**:ibatis属于持久层框架,主要负责处理数据访问接口(DAO)和具体的数据表之间的映射关系。 - **SQL与代码分离**:ibatis允许开发者编写纯SQL语句,并通过XML配置...

Global site tag (gtag.js) - Google Analytics