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