service和Dao層有什麼關係

Dao層:主要是作數據持久層的工做,負責與數據庫進行聯絡的一些任務都封裝在此,DAO層的設計首先是設計DAO的接口,而後就可在模塊中調用此接口來進行數據業務的處理,而不用關心此接口的具體實現類是哪一個類,顯得結構很是清晰,DAO層的數據源配置。前端

dao層代碼示例:數據庫

 

 

service層:主要負責業務模塊的邏輯應用設計, Service層的業務實現,具體要調用到已定義的DAO層的接口,封裝Service層的業務邏輯有利於通用的業務邏輯的獨立性和重複利用性,程序顯得很是簡潔。  json

service層代碼示例:後端

 

 

dao層和service層關係:service層常常要調用dao層的方法對數據進行增刪改查的操做,現實開發中,對業務的操做會涉及到數據的操做,而對數據操做經常要用到數據庫,因此service層會常常調用dao層的方法。api

擴展資料app

Service層是創建在DAO層之上的,創建了DAO層後才能夠創建Service層而Service層又是在Controller層之下的於是Service層應該既調用DAO層的接口,它恰好處於一箇中間層的位置。每一個模型都有一個Service接口,每一個接口分別封裝各自的業務處理方法。spa

在實際開發中DAO層大可能是對某張表進行增刪改查,都是一些固定的語句,除非涉及到更復雜的service層業務邏輯,纔可能要添加更復雜的DAO層方法。設計

 Controller層通常都是寫接口提供給前端或者後端其餘服務使用的,通常後端的接口都是寫在 Controller層Controller層的接口裏面不寫業務邏輯,主要是調用Service層的業務邏輯方法service層主要是寫業務邏輯方法,service層常常要調用dao層的方法對數據進行增刪改查的操做。3d

下面是Controller層的接口示例:code

@Controller
@RequestMapping(value = "/api/platform/exceptioncenter/exceptioninfo")
public class ExceptionInfoController {
    //注入
    @Autowired
    private ExceptionInfoBiz exceptionInfoBiz;
 
    /**
     * 建立異常信息請求
     * @param requestBody 請求消息內容
     * @param request 請求消息頭
     * @return jsonObject
     */
    @RequestMapping(
            value="/create",
            method = RequestMethod.POST
    )
    public ModelAndView createExceptionInfo(@RequestBody String requestBody, HttpServletRequest request) {
        JSONObject jsonObject = JSONObject.fromObject(requestBody);
        ComExceptionInfo comExceptionInfo = new ComExceptionInfo();
        comExceptionInfo.setProjectName(jsonObject.getString("projectName"));
        comExceptionInfo.setTagName(jsonObject.getString("tagName"));
        exceptionInfoBiz.insert(comExceptionInfo);
        //返回請求結果
        JSONObject result= new JSONObject();
        result.put("success", "true");
        return new ModelAndView("", ResponseUtilsHelper.jsonSuccess(result.toString()));
    }
  }
相關文章
相關標籤/搜索