dao层
dao层叫数据访问层,全称为data access object,属于一种比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查,对外提供稳定访问数据库的方法。
mapper层
与dao层功能相同。对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,主要实现一些增删改查操作。
dao层和mapper层的一些细微区别:
- mapper是Mybatis框架中的一个概念,定义了SQL语句和Java方法的映射关系,负责执行SQL语句并将结果映射为Java对象,实现数据的读取和写入。
- dao是一种设计模式,主要思想是将数据访问逻辑和业务逻辑分开,通提供一组接口或类来定义对数据的增删改查等操作。
service层
Service是管理具体的功能的接口。
impl层
impl层 是继承service、dao层具体的实现类,放在service层下。
util层
Util是utiliy的缩写,是一个多功能、基于工具的包。如字符串处理、日期处理等,(建立数据库之间的连接)。
entity层
这个类的属性是跟数据库字段一模一样的(驼峰命名),当我们使用MyBatis-Plus的时候经常用得到。
dto层
用于后端接收前端返回的数据,一般是post请求,前端会给我们返回一个json对象,我们这个dto就用于接收这个json对象,dto的每个属性名和json对象的key是对应的。
vo层
用于返回数据给前端,也就是说当我们在写业务的时候,前端不一定要全部的数据,他有可能只需要三四个,或者更少的数据,这时候我们就需要用到vo了,我们只需要在vo里面写三四个属性就好了,直接把这个vo返回给前端。
entity,dto,vo有区别。举个例子:
现有学生实体类(entity),属性包括:id、学号、姓名、班级、性别、院系、专业(与数据库里的字段完全一致);但是现在前端的业务只需要返回学生的 学号、姓名、班级、专业 ,这时如果使用entity返回对象数据则会造成不必要的数据泄露(id、性别等),所以,这里采用数据传输对象(DTO)会更好一些,这个DTO只需要包含需要的属性即可。
DTO和VO的区别:
1.DTO 通常封装一些业务逻辑和数据转换的方法,用于将数据从数据库中查询出来,并将其转换为前端需要的格式。而 VO 通常只包含数据属性,不包含任何业务逻辑。
2.DTO 可以包含数据库中的全部属性,也可以只包含部分属性,具体根据业务需求而定。而 VO 只包含需要在前端页面上显示的属性,不包含敏感数据和不必要的属性。
common层
常用的公共模块或工具集合,可以被其他模块或业务代码依赖和调用。如日志记录、配置读取、异常处理等,将这些公共功能封装成common层。
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------一些学习笔记----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------