MyBatis知多少(7)持久层

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

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

让咱们再仔细研究一下持久层细分后获得的这3层吧。编程

 

 

抽象层服务器

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

持久化框架框架

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

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

驱动程序/接口层htm

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

系列文章:

MyBatis知多少(1)

MyBatis知多少(2)

MyBatis知多少(3)

MyBatis知多少(4)MyBatis的优点

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

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

相关文章
相关标签/搜索