java中dao層和service層的區別是什么?
要知道dao層和service層的區別,那么我們得先從了解每個層開始,在來理解這兩個層的區別就簡單了。
Java后端分層我們都知道題主問的問題,是web程序的分層思想會談到的內容。在web應用程序中所謂的分層都是按照mvc的思想做分層操作的,根據mvc的分層思想我們可以把后端代碼分為:dao---->service---->control---->view
這樣分層的作用就是為了讓代碼各施其職,各盡其用。簡單的理解就是代碼和代碼對于不同的地方有不同的作用,所以根據代碼的作用把他們按照mvc的思想分為以上四個層。
各個層之間相互協調工作各層作用那么我們從上面的層分別來解釋各個層的作用:
dao層:
dao層就是用來做連接數據庫操作的代碼層,我們編寫的程序中數據是需要我們從數據庫中查詢出來然后在程序中做運算。那么做數據庫操作的代碼會被分到dao層中,一般情況下dao層中會引用到對應表格的實體類,因為做數據庫操作是需要做查詢,那么做查詢數據的保存方式一般是一張表格就一個實體類,然后實體類基本上作用就是用來在各個層之間做數據傳遞。
service層:
service層的就是用來做業務處理的。我們數據庫的表格之間是有關聯關系的,那么我們的程序需要完成一個業務,也不是總是一張表解決問題的,這個時候完成這個業務功能是需要結合多個dao層中數據庫操作完成,業務邏輯比較復雜的業務模塊是需要做事務的管理的,否則對于數據庫來說會產生垃圾數據,以及一些誤操作導致的數據的不準確性,和不必要的操作造成的異常。從而違背了數據庫完整性要求。
control層:
control層的作用就是用來管理請求和業務處理之間的交互。一般情況就是用戶在頁面上操作對應的操作需要向服務器方式對應的請求,Control層就會接收對應的請求,根據對應的請求在調用對應的業務處理,在根據不同的業務處理調用對應的數據訪問,數據訪問把結果得到給到業務邏輯層,業務邏輯層在給到Control層,Control層在把對應的結果反饋給用戶。
view層:
view層的作用就是用來和用戶做交互操作的。也就是說view層就是我們所說的html前端頁面,展示數據給用戶,根據數據做對應的操作。
dao層和service層的區別根據上面講解的內容可以看到dao層和service層的代碼的作用是完全不同的。作用功能不同,dao層只是為了做數據庫操作,service層主要是做整體的業務邏輯處理。在service層中是必須得調用dao層中的代碼來做相應的業務處理,所以他們兩個層是相互協助工作的。
這個圖片可以看到他們兩個的最直觀區別總結:dao層和service層最大的區別就是作用功能的不同,但是他們之間也是相互協作而存在的,誰都不能少誰。
以上是答主的看法,希望大家能給個贊,如果有其他看法的可以在下方評論區留言,我會在第一時間回復,或者點個關注我們一起探討探討