關於MVC的dao層、service層和controller層詳解

MVC的dao層、service層和controller層

1、dao層

dao層主要做數據持久層的工作,負責與數據庫進行聯絡的一些任務都封裝在此,dao層的設計首先是設計dao層的接口,然後在Spring的配置文件中定義此接口的實現類,然後就可以再模塊中調用此接口來進行數據業務的處理,而不用關心此接口的具體實現類是哪個類,顯得結構非常清晰,dao層的數據源配置,以及有關數據庫連接參數都在Spring配置文件中進行配置。

2、service層

service層主要負責業務模塊的應用邏輯應用設計。同樣是首先設計接口,再設計其實現類,接著再Spring的配置文件中配置其實現的關聯。這樣我們就可以在應用中調用service接口來進行業務處理。service層的業務實,具體要調用已經定義的dao層接口,封裝service層業務邏輯有利於通用的業務邏輯的獨立性和重復利用性。程序顯得非常簡潔。

3、controller層

controller層負責具體的業務模塊流程的控制,在此層要調用service層的接口來控制業務流程,控制的配置也同樣是在Spring的配置文件裡進行,針對具體的業務流程,會有不同的控制器。我們具體的設計過程可以將流程進行抽象歸納,設計出可以重復利用的子單元流程模塊。這樣不僅使程序結構變得清晰,也大大減少瞭代碼量。

4、view層

view層與控制層結合比較緊密,需要二者結合起來協同開發。view層主要負責前臺jsp頁面的顯示。

5、它們之間的關系

Service層是建立在DAO層之上的,建立瞭DAO層後才可以建立Service層,而Service層又是在Controller層之下的,因而Service層應該既調用DAO層的接口,又要提供接口給Controller層的類來進行調用,它剛好處於一個中間層的位置。每個模型都有一個Service接口,每個接口分別封裝各自的業務處理方法。 

關於dao層/mapper層的一些筆記

1、BaseMapper

Mapper 繼承該接口後,無需編寫 mapper.xml 文件,即可獲得CRUD功能

Mybatis-Plus 是一款 Mybatis 動態 SQL 自動註入 Mybatis 增刪改查 CRUD 操作中間件, 減少你的開發周期優化動態維護 XML 實體字段。

CRUD:增查改刪,即,create/read/update/delate 主要被用在描述軟件系統中數據庫或者持久層的基本操作功能

2、@mapper

使用接口註解的優點:

  • 比較方便,快速編寫映射語句

使用接口註解的缺點:

  • 適用於比較簡單的配置,當太復雜瞭接口就搞不定瞭。
  • 不能使用動態SQL,有點雞肋。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。

推薦閱讀: