Service层和Dao层的一些自我理解(╥╯^╰╥)(╥╯^╰╥)(学了这么久,这玩意儿似懂非懂的)
学习java已经有很长时间了,但由于是在学校学的,基础不怎么扎实。
这几个月系统的学习,弥补了很多的缺陷,虽然大多数时间都在弄算法(咳咳),我前面的博客有写
如果有认真看过我代码的朋友会发现,我其实英语特别不好,好多命名方式都是以拼音为主的,所以对于其他人能见名知意的东西来说,对我就是一脸懵逼,Service层和Dao层就是。
这几天系统的专研了一下,简单写一写自己对他俩的理解
Dao的作用是封装对数据库的访问:增删改查,不涉及业务逻辑,只是达到按某个条件获得指定数据的要求;
Service,则是专注业务逻辑,对于其中需要的数据库操作,都通过Dao去实现。
对于MVC架构来说,Service是业务层,Dao是数据访问层
用我的方法来说,Service是业务员,Dao是程序猿,,Service告诉Dao项目需求,Dao来实现。而一个项目不可能是一个人单独做的
所以一个Service控制一个或者多个Dao
我们则相当于是客户,通过业务员去告诉程序猿我们的需求,
而这样做的最大好处就是,
解耦
说的通俗一点,是降低代码之间的耦合,尽量让代码之间不要有太大的联系。
好比主板上内存坏了,我换内存就行,没必要连主板一起换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存就都可以插上这个接口使用
所以当某部分代码需要修改时,其他代码就不需要动了
而 Dao 层,只负责接收最终的 sql 语句,具体到某一张表的增删查改。
这里其实有个点就是,对于极小的项目来说,Service可以不要,加上这玩意儿只会增加代码量。
但是存在即合理,存在Service层肯定有其原因,通过Service层去调用Dao层,不仅可以解耦合,而且可以增加代码的拓展性。
随机推荐
- scss的使用方法
引用scss文件--看上一篇的less使用,里面的Koala,一样的原理!!! 方法一: scss: /**定义变量 */$width:404px;$color:green;$font-size:20 ...
- MatrixOne从入门到实践03——部署MatrixOne
MatrixOne从入门到实践--部署MatrixOne 前两章节我们简单介绍了MatrixOne和源码编译了MatrixOne.本章节将使用不同的部署方式,来部署MatrixOne的服务. 注意:不 ...
- Linux根据时间过滤文件
1.显示20分钟前的文件: find /sdb1/apache-tomcat-show/logs/ -type f -mmin +20 -exec ls -l {} \; 2.删除20分钟 ...
- HTML+CSS基础知识(6)背景的设置、表格的设计、表单的设计和框架集
文章目录 1.背景 1.1 代码 1.2 测试结果 2.背景练习 2.1 代码 2.2 测试结果 3.表格 3.1 代码 3.2 测试结果 4.练习 4.1 代码 4.2 测试结果 5.表单 5.1 ...
- DevOps|1024程序员节怎么做?介绍下我的思路
1024,祝每个程序员小哥哥小姐姐节日快乐. 因为在研发效能部门,我支持过几次 1024 程序员节的活动,所以经常有朋友问我1024 程序员节怎么做,本篇就是简单介绍下我的思路,希望对你有用. 102 ...
- Eureka Server 实现在线扩容
Eureka Server 实现在线扩容 作者:Grey 原文地址: 博客园:Eureka Server 实现在线扩容 CSDN:Eureka Server 实现在线扩容 需求 Eureka 是 Sp ...
- Salesforce LWC学习(四十) dynamic interaction 浅入浅出
本篇参考: Configure a Component for Dynamic Interactions in the Lightning App Builder - Salesforce Light ...
- VS2022连接Oracle数据库所需包和连接字符串
VS连接ORACLE数据库 l VS2022连接ORACLE数据库时,需要引入Oracle.ManagedDataAccess.Core包. l 引入方式:打开VS2022==>项目==&g ...
- [VUE]报错: No Babel config file detected for
在使用vue脚手架创建的项目中,项目中每个文件的第一行都会有红色波浪线. 解决方法:在项目文件中找到package.json文件,在parserOptions里添加"requireConfi ...
- Python基础之模块:5、 第三方模块 requests模块 openpyxl模块
目录 一.第三方模块的下载与使用 1.什么是第三方模块 2.如何安装第三方模块 方式一:pip工具 方式二:pycharm中下载 3.注意事项 1.报错并有警告信息 2.报错,提示关键字 3.报错,无 ...