關於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。
推薦閱讀:
- Mybatis Plus 增刪改查的實現(小白教程)
- spring boot–從controller到DAO操作
- Mybatis-plus 批量插入太慢的問題解決(提升插入性能)
- Mybatis 一級緩存和二級緩存原理區別
- Java中Mybatis,SpringMVC,Spring的介紹及聯系