DAO層:
1.DAO層--[面向表]: 持久層、數據訪問層,主要與數據庫進行交互
介紹:
DAO層只是封裝增刪改查,比較底層,比較基礎的操作,具體到對於某個表、某個實體的增刪改查。至於增刪查改如何去實現一個功能,dao是不管的。
在接口中對方法進行了定義,在UserDao.xml中給出了sql語句實現.
建議:
建議DAO只做原子操作,增刪改查。
Entity層:
1.Entity層(domain層):model層、實體層 數據庫在項目中的類
介紹:entity實體層,放置一個個實體,及其相應的set、get方法。如果想要對數據庫進行一些操作(比如說讀取)的話,就要先寫entity層。
建議:
Service層
1.Service層(biz)--[面向業務]:業務層、服務層, 控制業務
介紹:
粗略的理解就是對一個或多個DAO進行的再次封裝,封裝成一個服務,所以這里也就不會是一個原子操作了,需要事物控制。service層里面的方法相較於dao層中的方法進行了一層包裝,例如通過id查找用戶,通過用戶名查找用戶,是在基礎的操作上又增加了一層包裝的,實現的是相對高級的操作。最后將這些操作在serviceimpl類中實現.
service層要使用接口來定義好處:
service實現類實現了service接口,進行具體的業務操作
1.在java中接口是多繼承的,而類是單繼承的.如果你需要一個類實現多個service,你用接口可以實現,用類定義service就沒那么靈活
2.要提供不同的數據庫的服務時,我們只需要面對接口用不同的類實現即可,而不用重復地定義類.
3.編程規范問題,接口化的編程為的就是將實現封裝起來,然調用者只關心接口不關心實現,也就是“高內聚,低耦合”的思想.
建議:
Controller層:
1.Controller層(action層):控制層 控制業務邏輯
介紹:
Controler主要處理外部請求、負責請求轉發,接受頁面過來的參數,傳給Service處理,接到返回值,再傳給頁面。
建議:
View層:
1.View層
介紹:
View層 此層與控制層結合比較緊密,需要二者結合起來協同工發,View層主要負責前台jsp頁面的表示。
建議:
其流程為:Controller層調用Service層的方法,Service層調用Dao層中的方法,其中調用的參數是使用Entity層進行傳遞的。
