`
liufei.fir
  • 浏览: 687208 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

iBATIS之父:iBATIS框架的成功蜕变

阅读更多
推荐阅读:

1.《iBATIS 实战》——国内第一本iBATIS巨著(iBATIS之父撰写)
http://blog.csdn.net/turingbooks/article/details/2449981

2. 图灵4月精彩新书预告
http://blog.csdn.net/turingbooks/article/details/2438955

作为软件开发人员,我已经在许多不同的环境中工作过。即使是在同一家公司中,软件开发的方式也往往是迥然不同的。开发人员每天都要面对各种各样的挑战、面对不同的人和工具,考虑到这一点,你就会迅速了解他们的世界是多么的变化多端。我永远也不知道下一个项目又会有怎样惊人的挑战,因此我总是在工具箱中保留着各种各样的工具。在很长一段时间内,iBATIS只不过是这个工具箱中的一种普通工具。当我不得不手写JDBC代码时,它可以帮我节省很多时间。

那么,iBATIS是如何从我的工具箱中的普通工具转变为一个为成千上万的人使用的Apache项目的呢?其实原本我从没打算过使iBATIS成为一个完全成熟的开源项目。所以尽管它的源代码就在那儿,但我从没想过把它推向市场,也从没主动地和任何人分享过它,直到JPetStore。

故事发生在2002年7月1日,我针对网上流传的关于Pet Store的讨论发了一个帖子。当时位于Redmond的一家大型软件公司宣称其C#语言和.NET平台的生产率要比Java高出好几个数量级。我在技术上持中立态度,虽然我承认C#和.NET的确相当之好,但是我仍然不能接受上述这种论断。因此连续几个星期,我用晚上的时间编写了JPetStore,以之反驳他们的论断。JPetStore发布后,在Java社区引起了广泛的讨论。其中讨论得最为热烈的话题就是JPetStore没有使用Enterprise JavaBeans(EJB)的持久化层,而是用了一个称为iBATIS的小型框架。

经常有人问我:“为什么不用其他开源工具?”实际上,当时根本没有像iBATIS那样的工具。代码生成器倒是有很多,有开发时(development-time)代码生成工具,有构建时(build-time)代码生成工具,在此我就不对它们过多赘述了。我只强调一点:任何能够被生成的代码在经过适当的泛化(generalized)后都应该可以被抽取出来,成为一个框架或者某个框架的一部分。而这正是iBATIS的本质:一个用于加快JDBC编程的经过泛化的框架。

另一个被经常问到的问题就是,“为什么不用对象/关系映射(O/RM)工具?”只要环境合适,你当然可以使用O/RM工具。例如,当你可以完全控制数据库和对象模型时,O/RM工具就非常有效:你可以毫不费力地得到理想的对象关系映射;反之,如果你无法同时控制它们,那么当两者之间存在不匹配时(这几乎是肯定的),使用O/RM就会成为一场噩梦,因为它们必须匹配。但是,要为我经常处理的数据库类型建立与对象模型之间的映射几乎是不可想象的。当然,使用一个好的O/RM工具,如Hibernate或者TopLink,也许可以做到。但问题是:真的应该去建立这种映射吗?

曾经有人给我讲过一个故事,故事中那个拿着锤子的人总是把所有东西都看作是钉子——哈哈,是否觉得似曾相识!回到我们的话题,O/RM工具实际上是一种框架。而框架总是构建于约束和假设之上。这些约束和假设在某些环境中是理想的,但并不适用于所有的环境——不要因为拿着锤子就把所有的东西都看作钉子J。作为软件开发人员,我们的工作就是用那些理想的解决方案去匹配我们遇到的实际问题,并非只能使用那些我们知道的方案或者最流行的方案,或者网上最热门的方案,而应该使用那些能够最好地解决我们所面对的问题的方案。总之,不同的环境需要不同的工具——iBATIS就是这众多不同工具中的一种。

到目前为止,iBATIS已经在3种语言中得到了实现:Java、C#和Ruby。并且有一个由十几个开发人员组成的小组在专门维护它,同时它还拥有一个由成千上万的开发人员组成的社区。你可以在图书和文章中,甚至在Web上的博客中学习它。虽然iBATIS算不上(也似乎根本不可能成为)持久化框架的翘楚,但它仍然是一个巨大的成功。另外,回答关于iBATIS的各种问题这个任务现在已经由社区全面接管了,如果你们不满意以上问题的答案或者仍然有什么其他问题,欢迎到社区提问。

有一个能够完全“独立自主、自力更生”的社区是一个开源项目取得成功的真正标志。如果你早就读到过这句话,我猜你一定是该社区的一份子。因此让我们一同庆祝iBATIS这个小小框架的巨大成功吧。

                                                                                                                   Clinton Begin

                                                                                            iBATIS持久化框架的创始人

                                                                                                JPetStore应用程序的缔造者
分享到:
评论

相关推荐

    一个程序员的自省 iBATIS In Action:iBATIS的安装和配置

    【iBATIS In Action:iBATIS的安装和配置】 iBATIS,作为一个知名的持久层框架,其安装和配置过程相对简洁,对于熟悉C#和ADO.NET的开发者来说,理解并应用这个框架是进一步提升开发效率的关键。iBATIS并非一个独立...

    一个程序员的自省 iBATIS In Action:什么是iBATIS(一)

    iBATIS,全称为“Integrated Business Applications Using the SQL Maps”,是一个数据映射框架,由Anders Cui在2007年的文章中提及。iBATIS并非传统的对象关系映射(ORM)工具,而是采取了一种混合式解决方案,融合...

    一个程序员的自省 iBATIS In Action:什么是iBATIS(二)

    iBATIS 是一个Java语言开发的持久层框架,它主要解决的是数据访问层的问题,使得开发者能够将SQL语句与Java代码分离,从而提高代码的可维护性和可测试性。iBATIS 提供了一个SQL映射框架,允许开发者编写XML或注解...

    一个程序员的自省 iBATIS In Action:什么是iBATIS代码

    **iBATIS简介** iBATIS,全称为“Internet Basic Application Template for SQL”(互联网基础SQL应用程序模板),是由Apache Software Foundation开发的一个开源的Java库,主要用于简化Java应用程序与数据库之间的...

    Ibatis+Spring+struts1框架搭建

    【标题】:Ibatis+Spring+Struts1框架搭建 在Web开发中,Ibatis、Spring和Struts1是三个非常重要的组件,它们分别负责不同的职责。Ibatis是一个优秀的持久层框架,Spring是一个全面的后端应用框架,而Struts1则是一...

    IBatis.Net流风通用管理框架源码.rar

    【标题】"IBatis.Net流风通用管理框架源码.rar" 涉及的主要知识点是基于.NET平台的IBatis.Net框架以及如何构建一个通用的管理框架。IBatis.Net是一个轻量级的持久层框架,它提供了数据库访问的映射功能,帮助开发者...

    ibatis总结 ibatis ibatis ibatis ibatis

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

    ibatis-common包

    ibatis-common包ibatis-common包ibatis-common包ibatis-common包ibatis-common包ibatis-common包ibatis-common包ibatis-common包ibatis-common包ibatis-common包ibatis-common包

    ssh2+ibatis框架

    **iBatis框架**:iBatis是另一种轻量级的ORM框架,它与Hibernate不同,不完全是一个全自动的解决方案。iBatis允许开发者编写自定义的SQL,提供更多的控制权。在SSH2框架中,iBatis可以与Spring集成,通过...

    iBATIS 三个版对比

    iBATIS是一款优秀的持久层框架,它极大地简化了SQL映射编程的复杂度。随着技术的发展,iBATIS经历了多个版本的迭代,包括iBATIS v1、v2以及最新的iBATIS v3。本文将详细对比这三个版本在配置文件`sqlMapConfig.xml`...

    iBatis技术框架介绍

    iBatis技术框架介绍。ibatis2.x教程。

    SpringMvc+ibatis框架

    SpringMvc和iBatis是Java开发中常用的两个框架,它们在Web应用开发中扮演着重要的角色。SpringMvc作为Spring框架的一部分,主要用于处理HTTP请求和视图的渲染,而iBatis则是一个轻量级的数据访问层框架,它将SQL与...

    springmvc+ibatis 框架

    - **SQL映射**:iBatis 提供了一个SQL映射框架,将SQL语句与Java代码分离,通过XML或注解方式定义SQL语句,降低了DAO层的复杂性。 - **动态SQL**:iBatis 支持动态SQL,可以在XML映射文件中编写条件语句,根据传入...

    iBatis2学习笔记

    1.iBatis2学习笔记:基本原理和配置.doc 2.iBatis2学习笔记:与Spring2的整合.doc 3.iBatis2学习笔记:单表映射 .doc 4.iBatis2学习笔记:SqlMap的配置总结(18条).doc 5.iBatis2学习笔记:入参和返回值的问题.doc ...

    ibatis框架简单应用

    **Ibatis 框架简介** Ibatis 是一个优秀的、开源的 Java 数据访问框架,它提供了 SQL 映射功能,可以将 SQL 语句与 Java 代码分离,从而实现更灵活的数据访问。Ibatis 主要解决的问题是简化 JDBC 的繁琐工作,通过 ...

    springMVC+ibatis+hibernate+spring+boostrap框架

    2. iBatis: iBatis 是一个 SQL 映射框架,它允许开发者将 SQL 查询直接写入 XML 文件或注解中,从而与 Java 代码解耦。这使得数据库查询更灵活,避免了传统的 JDBC 编程的繁琐。iBatis 可以与 ORM(对象关系映射)...

    Struts2+spring+ibatis三大框架整合实例

    Struts2、Spring和iBatis是Java Web开发中常用的三大框架,它们分别负责MVC模式中的Action层、业务逻辑层和服务数据访问层。本文将详细介绍这三个框架如何整合,以及在实际项目中如何运用。 首先,Struts2作为表现...

    Ibatis 框架基础

    1. 加载配置:Ibatis启动时会加载配置文件,包括SQL Map和数据源配置。 2. 创建SqlSession:开发者通过SqlSessionFactory创建SqlSession实例,该实例代表一次数据库会话。 3. 执行SQL:通过SqlSession调用Mapper接口...

    IBATIS框架搭建教程

    4. **Mapper接口和XML配置**:IBATIS支持使用Java接口和XML映射文件结合的方式,通过注解或XML配置定义SQL方法。这种方式提高了代码的可读性和可维护性。 5. **Map对象(Map Elements)**:在IBATIS中,Map对象常...

Global site tag (gtag.js) - Google Analytics