学习java已经有很长时间了,但由于是在学校学的,基础不怎么扎实。

这几个月系统的学习,弥补了很多的缺陷,虽然大多数时间都在弄算法(咳咳),我前面的博客有写

如果有认真看过我代码的朋友会发现,我其实英语特别不好,好多命名方式都是以拼音为主的,所以对于其他人能见名知意的东西来说,对我就是一脸懵逼,Service层和Dao层就是。

这几天系统的专研了一下,简单写一写自己对他俩的理解

Dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求;
Service,则是专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。

对于MVC架构来说,Service是业务层,Dao是数据访问层

用我的方法来说,Service是业务员,Dao是程序猿,,Service告诉Dao项目需求,Dao来实现。而一个项目不可能是一个人单独做的

所以一个Service控制一个或者多个Dao

我们则相当于是客户,通过业务员去告诉程序猿我们的需求,

而这样做的最大好处就是,

解耦

说的通俗一点,是降低代码之间的耦合,尽量让代码之间不要有太大的联系。

好比主板上内存坏了,我换内存就行,没必要连主板一起换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存就都可以插上这个接口使用

所以当某部分代码需要修改时,其他代码就不需要动了

而 Dao 层,只负责接收最终的 sql 语句,具体到某一张表的增删查改。

这里其实有个点就是,对于极小的项目来说,Service可以不要,加上这玩意儿只会增加代码量。

但是存在即合理,存在Service层肯定有其原因,通过Service层去调用Dao层,不仅可以解耦合,而且可以增加代码的拓展性。

随机推荐

  1. Java连接MySQL数据库。编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计。

    题目2:编写一个应用程序,在主类Test_4类中,通过JDBC访问stu数据库,显示t_student表中的内容(表结构见表1),显示效果自己设计.之后,可根据显示的内容进行某条记录的删除(以id为条 ...

  2. 关于vmware虚拟机的ova/ovf转换成aws上的AMI镜像

    很多时候,我们会有这样的需求,需要将DC中vmware虚拟化的服务器,迁移到aws上,我们就得先将vmware虚拟机导出,然后转换 关于vmvare虚拟的导出备份,一般有ova(Open Virtua ...

  3. 把train数据集生成txt(test同理)

    import cv2 import numpy as np import os import sys import pickle data_dir = os.path.join("./&qu ...

  4. emqx启用JWT令牌认证(包含hmac-based和public-key)

    emqx连接启用jwt令牌认证 jwt令牌 概述 JWT 即 JSON Web Tokens 是一种开放的,用于在两方之间安全地表示声明的行业标准的方法(RFC 7519). 组成 令牌的形式 xxx ...

  5. ExceptionHandler配合RestControllerAdvice全局处理异常

    Java全局处理异常 引言 对于controller中的代码,为了保证其稳定性,我们总会对每一个controller中的代码进行try-catch,但是由于接口太多,try-catch会显得太冗杂,s ...

  6. ubuntu安装及使用

    ubuntu教程 一. Ubuntu简介 Ubuntu(乌班图)是一个基于Debian的以桌面应用为主的Linux操作系统,据说其名称来自非洲南部祖鲁语或科萨语的"ubuntu"一 ...

  7. NOI2017蚯蚓排队

    原题链接 发现 k<=50 ,在插入和删除时最多会影响不超过 k2 个串,用链表实现插入和删除,然后只需用哈希表维护每个长度不超过k的串的出现次数,哈希的话可以先用比较大的范围的值处理冲突,再映 ...

  8. LcdTools如何实现PX01设置不同的画面不同的背光亮度

    背光驱动分两种原理:恒压模式和恒流模式.恒压背光顾名思义提供恒定电压即可,这种屏正常来讲自带背光驱动电路,只需提供背光工作电压.背光使能和背光调光占空比控制.恒流背光指屏的背光只有纯灯串,需外部提供相 ...

  9. 二十、Pod的存储之Configmap

    Pod 的存储之Configmap 一.Configmap介绍 ​ConfigMap 功能在 Kubernetes1.2 版本中引入,许多应用程序会从配置文件.命令行参数或环境变量中读取配置信息.Co ...

  10. DQL语句

    DQL语句 DQL(Data QueryLanguage )数据查询语言,基本结构是由SELECT子句,FROM子句,WHERE子句组成的查询块. 一.DQL概述 1.1.什么是DQL DQL:数据查 ...