`

iBATIS特性之七大方面详谈

阅读更多
      iBATIS特性有哪些呢?什么样的特性使得iBATIS这么受欢迎呢?那么本文将向你介绍具体的那些特性。

      iBATIS特性有哪些呢?正如你所知道的,可以在任何系统中使用iBATIS。像iBATIS这样一个框架能够使你的应用从架构级别上开始受益是什么原因呢?来开始我们的介绍吧。

      iBATIS特性1简单性

      iBATIS被广泛认为是当今可用的最简单的持久化框架之一。简单性的理念根植于iBATIS开发团队,它在iBATIS的所有开发目标中居于首位。这种简单性的取得是因为iBATIS直接构建于JDBC和SQL之上。iBATIS对于Java开发者来说非常简单,因为它除了不用编写那么多代码外与JDBC的工作机制非常相像。几乎你知道的关于JDBC的一切都对iBATIS同样适用。你几乎可以这样认为,iBATIS就是以XML的形式来描述的 JDBC代码。有人说,iBATIS拥有许多JDBC所没有的架构级的优点,这些优点我们随后就将讨论。iBATIS对于数据库管理员以及SQL程序员来说也非常容易理解。iBATIS配置文件几乎人人都能读懂,只要他有SQL编程的经验。

      iBATIS特性2生产效率

      任何一个优秀的框架,其目的都是使得框架的使用者能够获得更高的生产效率。一般情况下,框架负责处理公共的任务,减少编写那些像样板一样的重复代码,以及解决复杂的架构级的问题。iBATIS在给开发人员带来更高的开发效率方面做得非常成功。在意大利的Java用户组(Java Users Group)所做的一个案例调查中(参见www.jugsardegna.org/vqwiki/jsp /Wiki?IBatisCaseStudy),Fabrizio Gianneschi发现iBATIS减少了持久层大约62%的代码量。所以能减少如此之多的代码量,究其原因是开发者再不需要编写繁琐的JDBC代码了。SQL语句仍然是硬编码的,不过就像你在本章之前所看到的,SQL不是问题——问题在于JDBC API,对于ADO.NET而言也是如此。

      iBATIS特性3性能

      性能这个话题无疑会引起框架开发者、框架使用者以及商业软件开发商之间的一场激烈争论。事实是,从一个较低的级别来看这个问题,无疑所有的框架都会带来一定的性能损失。一般来说,如果你比较硬编码的JDBC代码和iBATIS代码,做一个1,000,000次的for循环,你会发现JDBC在性能上的确有一些优势。幸运的是,在现代应用开发中,以上这样的for循环带来的性能损失并不重要。真正重要的是,你如何从数据库中获取数据,何时获取,获取的频率又是多少。例如,分页查询之所以能大大提高应用的性能就在于,它不会将可能成千上万条的记录从数据库中一次取出。同样地,使用像懒加载这样的特性可以避免加载那些在当前情况下并不需要的数据。另一方面,如果你确定需要加载一份复杂的对象图,涉及到来自多个表的大量数据,如果能仅用一条SQL语句就完成所有对象的加载显然可以大大提高效率,iBATIS支持使用这样的SQL语句。iBATIS支持许多性能优化措施,我们将在本章之后的章节中详细讨论。就目前而言,最重要的是要知道iBATIS总是能通过一种简单的方式来配置和使用,其性能与JDBC相当,甚至更好。另一个需要重点考虑的问题就是,并不是所有的JDBC代码都是编写良好的。JDBC API非常复杂,编写正确的代码需要非常小心。不幸的是,大量的JDBC代码都编写得相当糟糕,因此从较低层次上看甚至还没有iBATIS工作得好。

      iBATIS特性4关注点分离

      在典型的JDBC代码中,在应用的各个层中都能找到与数据库相关(例如获取连接、遍历结果集)的代码,这并不稀奇。相信大家都见过甚至开发过这样糟糕的应用——所有的逻辑都在一个JSP页面中完成,连接数据库、执行SQL语句,遍历结果集,当然还有散落其间的HTML代码。这样的代码简直是一个噩梦。在第一章中我们已经讨论了对应用分层的重要性。我们已经看到了如何从一个较高的角度对应用分层,以及持久层内部又是如何进一步分层的。iBATIS通过帮助管理所有这些持久化相关的资源来支持分层,这些资源包括数据库连接(database connection)、prepared statement以及结果集(result set)。iBATIS提供了一组数据库无关的接口以及API,使得应用的其它部分能够通过使用这组接口和API保持与数据库相关资源的独立性。使用 iBATIS,你的代码总是在直接与严格的对象打交道,再也不用管那些随意的结果集了。iBATIS实际上使得你难以违背对应用分层这样的最佳实践。

      iBATIS特性5明确分工

      一些数据库管理员是如此热爱他们的数据库,以至于不愿意让任何其他人来为数据库编写SQL。而有一些人又是如此擅长编写SQL,以至于其他人都想让他们来做这项工作。无论是什么原因,在你的开发团队中实现人尽其才总是有利的。如果你的团队中有人尤其擅长于编写SQL,但是对于Java或C#却不那么在行,那么就可以让他们专门编写SQL。iBATIS使得这种分工成为可能。因为在iBATIS中,SQL语句在很大程度上同应用的源代码是分离的,SQL程序员可以按照SQL原本的方式来编写它,而不必担心有关SQL字符串连接的问题。即使由相同的开发者来编写Java代码和SQL,在数据库性能调整(performance tune)的过程中也会有一个来自DBA的常见请求,即“显示出SQL”。用JDBC来完成此事并不容易,因为SQL隐藏得很深,是连接一堆分散的字符串得到的,甚至还可能是在递归语句和条件语句中动态地创建的。如果使用对象关系映射,情况就更加复杂了,因为你通常必须运行应用然后才能log出这些SQL 语句,即使你找到了它们,你也根本不能改变它们。iBATIS则提供了充分的自由,使得任何人都可以开发、观察并且修改在数据库中执行的SQL语句。

      iBATIS特性6可移植性

      iBATIS是可移植的。由于它相对简单的设计,它几乎可以用任何一种语言在任何一个平台上实现。书写本书时,iBATIS支持3种最受欢迎的开发平台:Java、Ruby和微软.NET的C#。

      当前,配置文件并不完全跨平台兼容,但是我们正在计划使它们更加兼容。重要的是,概念和方法都是可移植的。这就使你能够保证你所有的应用在设计上是一致的。和其他框架相比,iBATIS可以处理更多语言以及更多类型的应用,而无需考虑应用设计的不同。如果应用的一致性对于你来说很重要的话,使用 iBATIS就可以很好地帮你达到一致性。

      iBATIS特性7开源和诚实

      开始时我们说本节有“自吹自擂”之嫌。事实上,iBATIS是免费的开源软件。无论你是否使用它,我们都不会因此而获得哪怕是一分钱的利益。你已经买了本书,所以我们已经获得了我们该得的利益。开源软件的最大的优点之一就是诚实。我们没有任何理由对你撒谎。因此下面我们将要做的事在商业软件文档中就是非常罕见的:我们将要讨论一些你可能不应该使用iBATIS的情况,并且提出一些合适的替代方案。

      iBATIS特性就向你介绍到这里,希望通过这样的讲解使你更加清楚的认识iBATIS。

摘录:http://developer.51cto.com/art/200907/137076.htm
分享到:
评论

相关推荐

    ibatis总结 ibatis ibatis ibatis ibatis

    Ibatis 是一款轻量级的Java持久层框架,它允许开发者将SQL语句与Java代码分离,从而使得数据库访问更加灵活、易于维护。本篇文章将深入探讨Ibatis的核心概念、最佳实践以及与其他框架如Struts和Spring的整合。 1. ...

    ibatis demo,ibatis例子,ibatis示例

    Ibatis,全称为MyBatis,是一个优秀的Java...同时,也能掌握Ibatis的动态SQL特性,以及如何配合Spring进行更高效的开发。实践是检验真理的唯一标准,所以亲自动手尝试这个ibatis demo,会让你对Ibatis的理解更加深入。

    ibatis高级特性

    本文将详细介绍 ibatis 的一些高级特性,包括数据关联、延迟加载、动态映射以及事务管理等方面的知识点。 #### 二、数据关联 在实际的应用开发中,经常需要处理数据之间的关联关系,例如一对多或一对一的关系。...

    ibatis源码,ibatis源码 ibatis源码 ibatis源码

    iBatis,一个优秀的Java持久层框架,以其轻量级、灵活的特性在众多ORM(Object-Relational Mapping)框架中独树一帜。iBatis的核心在于它的SQL映射机制,它将数据库操作与业务逻辑解耦,使得开发者可以自由地编写SQL...

    iBatis开发指南和一个iBatis实例

    "iBatis开发指南"则是更全面的官方文档,它包含了iBatis的所有特性和使用方法。从中,你可以学习到动态SQL的使用,这是一种强大的特性,允许你在运行时根据条件动态地构建SQL语句。此外,还有关于事务管理、缓存机制...

    Ibatis入门例子,Ibatis教程

    Ibatis消除了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作,极大地提高了开发效率。在本教程中,我们将通过一个简单的Ibatis入门例子,带你逐步了解并掌握这个强大的框架。 首先,我们需要在项目中引入...

    Ibatis

    Ibatis 的一大亮点是支持动态 SQL,开发者可以在 SQL 映射文件中使用条件判断、循环等结构,使得 SQL 语句能够根据传入参数的不同而变化。 **4. MyBatis vs Ibatis** 尽管 Ibatis 在后期演进成了 MyBatis,两者在...

    ibatis教程,ibatis帮助文档

    iBATIS是一个由Clinton Begin创建,目前由Apache基金会支持的持久化框架,它专注于数据库查询的简化,尤其在JDBC编程方面提供了极大的便利。相对于全自动化ORM解决方案如Hibernate,iBATIS被称为“半自动化”ORM实现...

    ibatis 之分页

    在分页查询方面,Ibatis允许我们在SQL语句中直接添加LIMIT和OFFSET子句,或者使用自定义的分页插件来实现。 1. **SQL映射分页**:在Ibatis的XML配置文件中,我们可以直接编写包含分页条件的SQL语句。例如,对于...

    ibatis开发指南 经典教材

    总之,《ibatis开发指南》是一本详尽介绍了ibatis框架的教材,不仅涵盖了ibatis的基础概念和核心组件,还深入探讨了其高级特性和应用场景。对于希望在保证性能的同时充分利用ORM框架优势的开发者来说,这本书无疑是...

    经典开源插件之ibatis

    ### 经典开源插件之ibatis #### 概述 ibatis(现称为MyBatis)是一款优秀的持久层框架,它将SQL语句与Java代码分离,支持自定义SQL查询、存储过程以及高级映射等功能。ibatis的灵活性使得开发者能够通过简单的XML...

    深入分析 iBATIS 框架之系统架构与映射原理

    **深入分析 iBATIS 框架之系统架构与映射原理** iBATIS 是一个优秀的持久层框架,它允许开发者将 SQL 语句与 Java 代码分离,从而简化了数据库访问层的开发工作。本篇文章将深入探讨 iBATIS 的核心系统架构以及其...

    ibatis

    7. 执行性能:尽管Ibatis 增加了一层间接,但因其轻量级特性,性能损失并不显著。而且,由于其灵活的SQL控制,可以在必要时进行优化,提高执行效率。 总结起来,Ibatis 是一个强大且灵活的持久层框架,它允许开发者...

    ibatis应对批量update

    ### ibatis应对批量update 在处理大量数据更新时,传统的for循环方式往往...总之,ibatis提供的批量更新功能是处理大量数据更新场景的一个强大工具,开发者应该熟练掌握并合理利用这一特性来提升应用程序的整体性能。

    iBATIS教程之快速入门浅析

    iBATIS 是一款轻量级的Java持久层框架,它主要负责对象关系映射(Object-Relational Mapping,...虽然iBATIS没有提供像Hibernate那样的全自动对象管理,但它的灵活性和轻量级特性使其在某些场景下成为更合适的选择。

    Ibatis3手册 Ibatis3参考手册

    这种特性使得Ibatis3非常适合于那些需要精细化控制SQL查询的大规模项目。 ### 二、Ibatis3的核心概念 #### 1. **SqlSessionFactory** `SqlSessionFactory` 是用于创建 `SqlSession` 的工厂类,它是线程安全的,...

    ibatisDemo 入门源码

    五、Ibatis特性 1. 动态SQL:Ibatis支持在XML或注解中编写动态SQL,根据条件灵活拼接SQL。 2. 缓存:提供本地缓存和二级缓存,提高数据读取速度。 3. 参数映射:通过`@Param`注解或`<param>`标签实现参数绑定。 4. ...

    ibatis资料ibatis资料

    2. **动态SQL**: iBATIS允许在XML映射文件中编写动态SQL,可以根据传入的参数改变SQL的结构,极大地提高了SQL的灵活性。 3. **简单易用**: iBATIS的学习曲线相对平缓,开发者可以快速上手,因为它主要关注SQL的执行...

    ibatis 开发指南 2004

    12. **最佳实践**:提供iBatis在实际项目中的应用建议,包括代码组织结构、性能优化、异常处理等方面。 13. **案例分析**:通过实际案例展示iBatis在不同场景下的应用,如CRUD操作、复杂查询、批量处理等。 14. **...

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

    总的来说,IBATIS API和开发文档是学习和使用IBATIS不可或缺的资源,它们涵盖了IBATIS的所有关键特性和用法,无论你是初学者还是有经验的开发者,都能从中受益匪浅。通过深入理解和实践,可以充分利用IBATIS的灵活性...

Global site tag (gtag.js) - Google Analytics