Java中controller,service,mode, dao層含義?它們有什麼聯絡?

Model的意思是模型,Model承載的作用就是資料的抽象,

Model其實就是一組資料的集合,通常為資料庫實體層

,即資料庫中的一張表對應一個實體類。整個系統都可以看成是資料的流動,既然要流動,就一定是有流動的載體。

Service的意思是服務,即業務邏輯層,它的目的是

提供一個服務

。這個服務可能是一系列的資料處理,也可能是呼叫別的服務。

Dao(data access object)的意思是資料儲存物件,它主要是負責和底層資料庫通訊,即對資料庫進行增刪改查等基礎操作(

訪問資料庫,向資料庫傳送sql語句,完成資料的增刪改查任務

)。

Controller的意思是控制器,即

把握全域性

、控制流程,所有的指令都從這裡發出。

它們之間的關係:

Controller 層呼叫Service interface去控制業務流程,最底層的即為model,model定義的為實體類,dao層中封裝了很多常用的增刪改查方法(例如:deleteByProperties、getByProerties、queryByProerties、updateByProper等方法),它會呼叫model層,從而對資料庫進行操作;Service層建立在Dao層之上Controller層之下,建立了Dao層後才可以建立Service層,service層呼叫dao層介面,接收dao層返回的資料,完成專案的基本功能設計;而Controller層又建立在Service層之上,因而controller層接受前端請求,呼叫service層,接收service層返回的資料,最後返回具體的頁面和資料到客戶端,每個模型都有一個Service介面,每個介面分別封裝各自的業務處理方法。