zoukankan      html  css  js  c++  java
  • service和Dao层有什么关系

    Dao层:主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此,DAO层的设计首先是设计DAO的接口,然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰,DAO层的数据源配置。

    dao层代码示例:

    service层:主要负责业务模块的逻辑应用设计, Service层的业务实现,具体要调用到已定义的DAO层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。  

    service层代码示例:

    dao层和service层关系:service层经常要调用dao层的方法对数据进行增删改查的操作,现实开发中,对业务的操作会涉及到数据的操作,而对数据操作常常要用到数据库,所以service层会经常调用dao层的方法。

    扩展资料

    Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层而Service层又是在Controller层之下的因而Service层应该既调用DAO层的接口,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。

    在实际开发中DAO层大多是对某张表进行增删改查,都是一些固定的语句,除非涉及到更复杂的service层业务逻辑,才可能要添加更复杂的DAO层方法。

     Controller层一般都是写接口提供给前端或者后端其他服务使用的,一般后端的接口都是写在 Controller层Controller层的接口里面不写业务逻辑,主要是调用Service层的业务逻辑方法service层主要是写业务逻辑方法,service层经常要调用dao层的方法对数据进行增删改查的操作。

    下面是Controller层的接口示例:

    @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()));
        }
      }
  • 相关阅读:
    putty配置
    BroadcastReceiver应用详解 (转)
    linux主设备号和次设备号
    Enable screen lock and HOME key (eclair and older versions)(转)
    C#获取用户桌面等特殊系统路径
    java中Thread与Runnable的区别
    博文索引
    FlinkCDC实践
    关于libxml2.so.2不被Gstreamer链接的解决
    s.length什么意思
  • 原文地址:https://www.cnblogs.com/111testing/p/11669352.html
Copyright © 2011-2022 走看看