iBATIS实战—第一部分介绍

本文介绍了iBATIS框架的核心理念及其作为混合型持久层解决方案的独特之处。iBATIS结合了多种数据库交互方式的优点,如存储过程、内联SQL、动态SQL及对象关系映射(O/RM),并对外部化SQL和封装SQL进行了深入探讨。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本书从对iBATIS的高级介绍开始。接下来的两章将讨论iBATIS的理念,正是这种理念的不同使得iBATIS有别于其他的持久化方案。对Java来说,有许多种可选的持久化方案,到底在何时使用哪一种方案,可能是一个非常值得探讨的问题。通过阅读本部分的内容,你应该能够明白iBATIS背后的理念和它的价值,当然你也就知道应该在何时何地使用它了。

第一章iBATIS的理念

iBATIS并不试图隐藏SQL或者避免使用SQL。相反,正是iBATIS这个持久层框架广泛使用了SQL,它使得SQL更容易使用、更容易集成到现代的面向对象软件中。混合型解决方案在IT领域同样被证明是非常有效的。iBATIS就是这样一个混合型的持久层解决方案。在过去的时间中,我们已经开发了大量的方法来使用应用程序能够执行SQL,以便操纵其背后的数据库。iBATIS汲取了这些方法中的优秀思想,成为一个独特的持久层解决方案。让我们快速浏览一下这些方法。

    1.SQL(省略)

    2.老式存储过程(省略)

    3.现代存储过程(省略)

    4.内联SQL(省略)

     5.动态SQL。代码中的字符串拼接操作使得SQL的可读性大大降低,给维护和使用都带来了更多的困难。

     6.O/RM。它并非适用于所有的场景。O/RM工具是基于一些假设和规则的。其中最普遍的一个假设就是数据库被恰当地规范化了。哪些最大的最有价值的数据库网没有被很好地规范化。

现在讨论混合型解决方案

理解iBATIS的优势

iBATIS是一个混合型解决方案。它汲取了所有这些解决方案中最有价值的思想并将它们融会贯通。

iBATIS提供的与其他解决方案相同的优点
方案相同的优点解决的问题
存储过程iBATIS对SQL进行了封装和外部化,使SQL从你的应用程序代码中分离出来。iBATIS具有与存储过程相似的API,但iBATIS的这些API是面向对象的。iBATIS也完全支持对存储过程的直接调用业务逻辑从数据库中分离出来,应用程序更容易部署与测试,也具有更好的可移植性
内联SQLiBATIS允许SQL以其最自然的方式书写。没有字符串拼接,没有参数“设置”,没有结果“获取”iBATIS对应用程序代码没有任何影响。不需要任何预编译器,并且你能够完全访问SQl的所有特性,而不只是一个子集
动态SQLiBATIS提供了若干特性以支持基于参数的动态构建查询。不需要“查询构建工具”这样的APIiBATIS不要求SQL被写成一堆字符串的拼接,中间还夹杂着应用程序的代码
O/RMiBATIS支持许多与O/RM工具一样的特性,例如延迟加载、连接抓取、高速缓存、运行时代码生成以及继承iBATIS可用于任意数据模型与任意对象模型的组合。它对这两者中的任何一个的设计没有任何约束和要求

接下来将讨论iBATIS持久层所具有的两个最重要的特性:外部化SQl和封装SQL。这两个概念展现了iBATIS框架的核心价值,并启用了这个框架所能实现的许多高级特性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值