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

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

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)企业数据库

转载于:https://www.cnblogs.com/Coda/p/4659486.html

MyBatis知多少(12)私有数据库相关推荐

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

    应用程序数据库往往是最小.最简单.也最易于使用的数据库.这种数据库往往是我们这些开发人员通常不介意使用甚至非常乐意使用的.应用程序数据库通常与我们的应用程序处于同一个项目中,两者一齐设计和实现.正是因 ...

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

    MyBatis的存在就是为了简化对关系数据库的访问.数据库的确非常复杂,要正确地使用它们需要做很多的工作.数据库负责管理数据和修改数据.我们使用数据库而不简简单单地使用一个 平板文件的原因就在于数据库 ...

  3. MyBatis知多少(14)分散的数据库系统

    任何一个重要的数据库无疑都会拥有不止一个依赖者.即使该数据库只是简单地被两个Web 应用程序所共享,也有许多事情需要考虑.假设有一个名为网上购物车的Web应用程序,它使用了一个包含类别代码的数据库.就 ...

  4. MyBatis知多少(22)MyBatis删除操作

    本节从表中使用MyBatis删除记录. 我们已经在MySQL下有EMPLOYEE表: 1 CREATE TABLE EMPLOYEE ( 2 id INT NOT NULL auto_incremen ...

  5. mybatis foreach map_Spring Boot(五):春眠不觉晓,Mybatis知多少

    在JavaWeb项目开发中,我们使用最多的ORM框架可能就是Mybatis了,那么对于常用的mybatis,你究竟了解多少呢? Mybatis是什么 MyBatis 是支持定制化 SQL.存储过程以及 ...

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

    表现层 表现层负责向最终用户展示应用程序的控制方式以及数据.它还要负责所有信息的布局和格式.今天,商业应用程序最流行的表现方式应该算是Web前端了,它使用HTML和JavaScript并通 过Web浏 ...

  7. springboot map数据类型注入_Spring Boot(五):春眠不觉晓,Mybatis知多少

    在JavaWeb项目开发中,我们使用最多的ORM框架可能就是Mybatis了,那么对于常用的mybatis,你究竟了解多少呢? 一 全局了解 1 Mybatis是什么 MyBatis 是支持定制化 S ...

  8. 利用Oracle虚拟私有数据库进行整合

    Oracle虚拟私有数据库(Virtual Private Database,下文简称VPD)是Oracle数据库产品中提供的一个安全功能,它能够保证Oracle数据库的多租户特性,与此同时,可以帮助 ...

  9. MyBatis Generator 生成器把其他数据库的同名表生成下来的问题

    MyBatis Generator 生成器把其他数据库的同名表生成下来的问题 2018年10月23日 20:47:48 莫弹弹 阅读数:603 MyBatis Generator : Table Co ...

最新文章

  1. Spring Boot 2.3.0 发布:支持Java14、打包Docker镜像、优雅关机配置...
  2. python绘制科赫雪花(递归)
  3. MySql数据库操作遇到的蛋疼二三事
  4. 科大星云诗社动态20210828
  5. .Net Core 认证组件源码解析
  6. Educational Codeforces Round 64 Div.2 D - 0-1-Tree
  7. html表单占位符,HTML5 输入表单动效 - 占位符上浮
  8. [ISSUE]invalid 'cobj' in function 'lua_cocos2dx_EventDispatcher_dispatchCustomEvent'
  9. atitit uke企业行政部 世界行政区域划分表 与邮政编码规划 v5 r88.xlsx
  10. js中base64编码
  11. 诛仙2怎样修改服务器时间同步,《诛仙2》2月22日更新公告
  12. 冗余链路引起广播风暴和MAC地址表不稳定
  13. python爬取酷狗音乐top500_爬取酷狗音乐Top500
  14. 用在线RaxML构建系统发育树
  15. 一次网络丢包问题排查的经历
  16. 关于html中锚点功能的使用
  17. 怎么获取股票历史数据?获取股票历史数据Excel
  18. 规格中的OR\DR\DS\RR\IR\PB\SF\SR\AR\CR
  19. Jsp中分页功能的实现
  20. mp2格式怎么转换mp3?

热门文章

  1. 医院电脑瘫痪 病人排长队苦等5小时
  2. unittest框架执行用例
  3. 掌握 Angular2 的表单 - Angular2 系列 (4)
  4. 使用log_format为Nginx服务器设置更详细的日志格式
  5. Java集合干货——ArrayList源码分析
  6. 一个虚拟机网络的XML描述
  7. 解决SQL SERVER LDF文件过大的问题
  8. 集成Java内容仓库和Spring
  9. error LNK2001: 无法解析的外部符号 public: static int Pe...
  10. DIV+CSS圆角边框