MyBatis知多少(12)私有数据库

如果你从事软件开发工作有了一段时间的话,那么肯定听过关于“自己动手还是花钱购买” 的争论。该争论是说,针对一个业务问题,我们是应该自己动手构建自己的解决方案呢,还是应 该花钱购买一个声称已经解决了此问题的软件包。通常付出的代价是差不多的(否则也就没什么好争论的了),但真正的权衡其实在于“自己动手所要花费的时间”与“花钱购买来的软件包和 我们要解决的问题的契合度”。自己构建的软件当然能恰到好处地符合业务需求,但实现它确实 需要更多的时间。购买软件包当然非常迅速,但有时又不一定能满足我们所有的需求。基于这个 原因,当决定购买软件包时,我们往往会在买回以后对它进行改造,修改它的私有数据库,扩展 它所遗漏的特征,这样就可以两全其美了。

我们其实可以好好讨论一下深入别人的私有数据库并修改它是一件多么麻烦的事,但在此我想告诉你的只有一句话,私有数据库绝不是为了方便第三方修改而设计的。其设计中往往充满了假设、限制以及非标准的数据类型,还有其他像“请勿修改,否则后果自负”这样的警告信号。 但企业为了省钱,往往会不顾这些警告信号而做出一些惊人的事情。因此软件开发人员就注定要 深陷在这些私有数据库构成的丛林中,艰难探索了。

MyBatis在处理私有数据库时同样是一个非常优秀的持久化框架。通常这样的数据库只允许只 读访问,使用MyBatis时,对这样的需求你大可放心,因为你可以限制运行的SQL的类别。当需求 不允许数据库更新时,MyBatis绝不会对数据库执行任何神奇的更新操作。当需要更新时,私有数据库往往对数据的组织方式非常挑剔。MyBatis允许编写非常特定的更新语句以处理这种情况。

如果说有什么东西的存在是现代面向对象软件开发人员的祸害的话,那么无疑是遗留数据库 了。遗留数据库往往是曾经的企业数据库。它们具有企业数据库的各种复杂性和依赖关系。此外, 它们还具有长年累月的修改、快速修正、掩饰、绕弯路、绷带解决方案以及技术限制所带来的无尽的“伤痕”。更重要的是,遗留数据库通常是在不仅已经过时而且有时已完全不被支持的老式 平台上开发出来的。因此对于现代开发人员来说可能已经没有适当的驱动程序和开发工具可用 了。

MyBatis对于遗留数据库同样是有帮助的。只要你正在工作的系统有合适的数据库驱动程序可用,MyBatis就可以像对其他任何数据库那样发挥作用。事实上,MyBatis可能是处理遗留数据库问题最好的持久化框架了,因为它对数据库的设计没有做任何假设,所以即使是对于最让开发人员头痛的遗留数据库,它也可以处理。

系列文章:

MyBatis知多少(1)

MyBatis知多少(2)

MyBatis知多少(3)

MyBatis知多少(4)MyBatis的优势

MyBatis知多少(5)业务对象模型

MyBatis知多少(6)表现层与业务逻辑层

MyBatis知多少(7)持久层

MyBatis知多少(8)关系型数据库

MyBatis知多少(9)不同类型的数据库

MyBatis知多少(10)应用程序数据库

MyBatis知多少(11)企业数据库

posted @ 2015-07-19 20:25 Coda 阅读(...) 评论(...) 编辑 收藏