首先解釋面上意思,service是業務層,dao是資料訪問層。呵呵,這個問題我曾經也有過,記得以前剛學程式設計的時候,都是在service裡直接呼叫dao,service裡面就new乙個dao類物件,呼叫,其他有意義的事沒做,也不明白有這個有什麼用,參加工作久了以後就會知道,業務才是工作中的重中之重。
我們都知道,標準主流現在的程式設計方式都是採用mvc綜合設計模式,mvc本身不屬於設計模式的一種,它描述的是一種結構,最終目的達到解耦,解耦說的意思是你更改某一層**,不會影響我其他層**,如果你會像spring這樣的框架,你會了解面向介面程式設計,表示層呼叫控制層,控制層呼叫業務層,業務層呼叫資料訪問層。初期也許都是new物件去呼叫下一層,比如你在業務層new乙個dao類的物件,呼叫dao類方法訪問資料庫,這樣寫是不對的,因為在業務層中是不應該含有具體物件,最多只能有引用,如果有具體物件存在,就耦合了。當那個物件不存在,我還要修改業務的**,這不符合邏輯。好比主機板上記憶體壞了,我換記憶體,沒必要連主機板一起換。我不用知道記憶體是哪家生產,不用知道多大容量,只要是記憶體都可以插上這個介面使用。這就是mvc的意義。
接下來說你感覺service的意義,其實因為你現在做東西分層次不是那麼嚴格,在乙個你們做東西業務本身也少,舉個最簡單的例子,你做乙個分頁的功能,資料1000條,你20條在乙個頁,你可以把這個功能寫成工具類封裝起來,然後在業務層裡呼叫這個封裝的方法,這才是業務裡真正幹得事,只要沒訪問資料庫的,都要在業務裡寫。
再有不明白的追問,這是經驗問題,呵呵,其實以後你就會懂。只是剛開始寫的**都是有個請求,我就去資料庫取,業務幾乎沒有。
比說你現在用的是ssh框架,做乙個使用者模組:1、假設現在你做這個功能會用到user表和許可權表,那麼你前台的頁面訪問action,action再去呼叫使用者模組service,使用者模組service判斷你是操作user表還是許可權表,如果你操作的是user表則service的實現類就去呼叫userdao。如果是操作的是許可權表則呼叫許可權的dao
2、也就是說dao一定是和資料庫的每張表一一對應,而service則不是。明白的沒?其實你乙個專案乙個service和乙個dao其實也一樣可以運算元據庫,只不過那要是表非常多,出問題了,那找起來多麻煩,而且太亂了
3、好處就是你的整個專案非常系統化,和資料庫的錶能一致,而且功能模組化,這樣以後維護或者改錯比較容易,效能也高一些
dao層和service層中對應操作
進行 檢查的時候,被同事發現了乙個問題,dao層中不管是update,insert,delete還是select操作,統一用的是,但是我在使用的時候結果並沒有錯誤,但為了規範,在此做一下總結,貼出 留個教訓。1 select操作 service層中 selectone 查詢一條記錄 select 查...
DAO層和Service層的究極理解
先看後贊,養成習慣。點讚收藏,人生輝煌。說實話,學了挺久的mvc架構了,到現在也一直沒整明白service層和dao層是幹什麼用的,哪怕我目前已經學到了spring boot,但回過頭來看這些基礎知識,依然是不明就裡。感覺service層並沒有做什麼實際的工作,只是接受了servlet,同時又呼叫了...
dao層方法中的 Param說明
1 採用 param的方法可有多個引數 public void abc param username string name,param password string password select from testtable where username 2 xml 中的 sql 使用了 那麼...