持久层是适合使用MyBatis的地方。在面向对象的系统中,持久层主要关注对象(或者更精确地说应该是存储在那些对象中的数据)的存取。在企业应用程序中持久层通常用关系数据库系统来存储数据,虽然某些情况下其他持久的数据结构或者介质也可能使用。如某些系统就可能会使用简单的以逗号分隔数据的平板文件或XML文件。考虑到企业应用程序的持久化策略往往具有异质性,因此持久层需要关注的第二个问题就是抽象。持久层应该隐藏关于数据如何被存储以及如何被取出的所有细节。这样的细节决不能暴露 给应用程序的其他层。

为更好地理解这些关注点及其如何被管理,我们将持久层又分为3层:抽象层、持久化框架 以及驱动程序/接口层,如下图。

让我们再仔细研究一下持久层细分后得到的这3层吧。

抽象层

抽象层的目的就在于为持久层提供一致且有意义的接口。它是一组类和方法的集合,这些类和方法是持久层实现细节。抽象层中的方法不能使用特定于实现的参数,也不能返回特定实现专用的类或抛出特定实现专用的异常。一旦合适的抽象层准备就绪,整个持久化方法(包 括持久化API以及存储设施)的改变就不再涉及该抽象层,也不能引起其他任何依赖层的改变。 有许多模式可用于帮助实现一个合适的抽象层,其中最常用的就是DAO模式。包括MyBatis在内的许多框架都为你实现了这个模式。

持久化框架

持久化框架负责与数据库驱动程序(或接口)的交互。持久化框架会提供用于存储、获取、 更新、查找以及管理数据的方法。与抽象层不同,持久化框架通常只针对一类存储设施。例如, 你可能会找到专用于处理XML文件的数据存储的持久化API。但是,对大多数现代企业应用程序 来说,关系数据库通常是存储设施的首选。大多数流行的编程语言都带有用于访问关系数据库的 标准API。JDBC是Java应用程序访问数据库的标准框架

①即“外观模式”,用于为一个子系统定义一组一致的接口。据库的标准持久化框架。这些标准API能够用于任何目的,因此它们的实现非常完备,只是使用 起来非常冗长和繁琐。基于这些原因,人们在标准API的基础上又创建了许多框架,使之功能更加专用,因此也更加强大。MyBatis就是这样的一个持久化框架,它专用于处理任何类型的关系数据库,且以一种一致的方式同时支持Java。

驱动程序/接口层

存储设施可以简单得像一个以逗号分隔数据的平板文件,也可以复杂得像一个价值几百万元的企业数据库服务器。但不论是哪种情况,总有一个软件驱动程序在底层与存储设施通信以交换数据。一些驱动程序,如本地文件系统驱动程序,虽然在功能上是通用的,但与平台相关。你也许永远也不会看到文件I/O驱动程序,但可以肯定的是它一定存在。另一方面,数据库驱动程序总是非常复杂,并且在实现、大小和行为上存在较大的不同。因此就需要由持久化框架来与这些数据库驱动程序通信,从而将它们之间的不同简化并降低到最低点。

系列文章:

MyBatis知多少(1)

MyBatis知多少(2)

MyBatis知多少(3)

MyBatis知多少(4)MyBatis的优势

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

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

最新文章

  1. Jquery获取select选中的文本与值
  2. flume原理及代码实现
  3. 当target属性在XHTML script中无效时
  4. php大力力 [033节] 随便看看:PHP程序员学习C++
  5. Android Touch(2)View.OnTouchEvent与View.OnTouchListener区别
  6. C/C++中的可变参函数
  7. Activity singleTop启动模式
  8. Android中GPS简介及其应用
  9. hdu1824(two-sat)
  10. 《java入门第一季》二维数组三个案例详解
  11. Openvpn搭建详解
  12. Spring Cloud 2-Hystrix 断路容错保护(四)
  13. 找bug hhh
  14. sqlserver的like '%xxx%'优化,全文索引
  15. Java知识回顾 (6)正则表达式、方法、文件与异常
  16. 19.JDBC和数据库访问.md
  17. spring 状态机
  18. EasyUI 常规用法
  19. python基础-第八篇-8.1初识Socket
  20. Firewalld的panic模式

热门文章

  1. Windows对象操作:浏览器窗口信息
  2. 使用bee自动生成api文档
  3. 更新日志 - fir.im 回归,上线 Android Studio 插件
  4. 从零开始学Bootstrap(3)
  5. MySQL数据库定义与操作语言
  6. LDAP查询过滤语法(MS)
  7. C#版Windows服务安装卸载小工具-附源码
  8. javascript - 二叉树
  9. brew 出现 git 错误的问题分析
  10. 如何准备IREB考试