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)表現層與業務邏輯層

相關文章
相關標籤/搜索