在现代软件项目中数据库通常被认为是遗留组件。它们一直以来都被认为难以使用,不论是出于技术的还是非技术的原因。大多数软件开发人员宁可从头开始完完全全地重建一个数据库。 如果数据库是遗留下来的,相信一些开发人员会真心地希望负有此责的,只可惜两种情况都是不实际的,也不可能发生。不论你是否相信,数据库的存在总有它自己的理由——不论这个理由是否充分。可能是数据库变更的代价太高了,也可能是因为有其他系统依赖于该数据库。不论数据库被质疑的原因如何,我们都应该学会如何高效地与任何类型(包括饱受非议)的数据库打交道。MyBatis的开发主要就是为了对付那些设计非 常复杂甚至非常糟糕的数据库。以下描述数据库经常遇到的一些问题以及MyBatis是如何帮助解决这些问题的。
所有权与控制
在现代企业环境中,数据库存在的第一个同时也是最主要的困难其实完全不是技术问题,而是大多数现代软件企业都将数据库的所有权和责任从应用程序开发团队中分离了出来这样一个事实。数据库通常都是完全由企业中的一个独立小组所拥有。如果幸运的话,这个小组可能会与你的项目团队协同工作一起开发软件。否则,你的项目团队与数据库小组之间就可能存在一堵 “墙”,你所有的需求都必须越过这堵墙传递给对方,然后期望它们能够被接收到并且得到理解。 多么可悲啊,但事实就是这样,并且它一直都在发生着。
要和数据库团队打交道通常都是一件非常困难的事情。主要原因就在于他们往往都承受着巨大的压力且处理的项目不止一个。他们经常需要处理大量的需求,有时这些需求甚至可能是冲突的。数据库系统的管理的确是一项非常困难的任务,因此许多公司都认为它是一项至关重要的职责企业数据库系统的崩溃是会惊动该企业的CEO的。因此,数据库管理团队通常都非常谨慎。 数据库系统的变更控制流程通常都比应用程序代码的变更控制流程要严格得多。数据库的某些变 更可能会需要数据转移。其他一些变更则可能需要进行大量的测试以保证它们对性能不会造成影 响。数据库团队难以交往看来的确是有理由的,因此如果可能,能帮帮他们就帮帮他们吧。
当需要进行数据库设计以及数据库交互时,MyBatis通常能带来极大的灵活性。DBA都希望能够看到将在他们的数据库上运行的SQL,对于复杂的查询,他们甚至可能可以帮忙调整一下,而MyBatis使这种希望成为了现实。一些使用MyBatis的开发团队甚至拥有一个DBA或者数据建模人员来帮助他们直接维护MyBatis的SQL文件。数据库管理员和SQL编程人员要理解MyBatis绝对没有 问题,因为背地里绝对不会发生任何意想不到的事情,他们可以看到所有的SQL语句。
系列文章: