一、定义
mapper层的定义:
Mapper层,也称为数据访问层,即DAO层,是软件架构中负责处理数据持久化操作的部分。它的主要职责是对数据库进行增删改查等操作,通常与数据库表一一对应,并且封装了对数据表的直接操作方法。例如MyBatis,来简化数据库操作,避免直接编写SQL语句,提高代码的可读性和可维护性。
service层的定义:
Service层,也称为业务逻辑层,是软件架构中负责处理业务逻辑的核心部分。它的主要职责是从controller层接收用户请求,并根据业务需求调用mapper层(DAO层)来读写数据。在Service层中,通常包含了一系列的Service类,每个Service类负责处理一个或多个相关的业务逻辑。Service类通常是一个接口,由具体实现类来实现接口中的方法,以提供业务处理的具体实现。Service层的设计有助于提高JavaWeb应用程序的可维护性、可扩展性和可重用性。
controller层的定义:
Controller层,软件架构中的一个关键组件,特别是在MVC架构模式中。它的主要职责是接收用户的请求,并解析请求参数,根据请求的类型和目的,调用相应的业务逻辑处理,处理业务逻辑后,将结果传递给View层,以便展示给用户。控制应用程序的流程,包括页面跳转和数据流转。验证用户输入的数据,确保数据的合法性和安全性。处理异常情况,确保应用程序的稳定运行。Controller层通常是Web应用程序的入口点,它与用户直接交互,是连接前端和后端的桥梁。
entity层的定义:
Entity层,也被称为模型层或领域层,即model层和domain层,是软件架构中用于存放实体类的部分。这些实体类通常与数据库中的表相对应,并且包含了与表中列相对应的属性。Entity层的类实现了getter和setter方法,用于访问和修改属性值。在Java Web应用程序中,Entity层的类通常用于封装数据,并作为数据传输对象在不同的层之间传递。
二、mapper、service、controller、entity之间的关系
从上面的定义我们可以知道四个层的关系
service层是对接controller层以及mapper层的中继器作用,controller层调用service层的额方法来处理业务逻辑,将结果递交给前端。service层则依赖于mapper层(DAO层)提供的持续操作,通过调用mapper层(DAO层)的方法来执行数据库操作。即从controller层接收用户请求,并根据业务需求调用mapper层(DAO层)来读写数据。
entity层定义了数据模型,mapper层将其定义的数据模型映射到数据库中,并进行对应的数据库操作。
三、mapper、service、controller、entity之间的区别
名称 | Mapper层 | Service层 | Controller层 | Entity层 |
主要职责 | 对数据库进行CRUD操作 | 处理业务逻辑,调用Mapper层或其他Service层 | 处理用户请求,调用Service层,返回响应 | 代表数据库表的实体类,映射数据库字段 |
实现方式 | 通常通过接口定义,具体实现在XML文件中 | 通常通过接口定义,具体实现在实现类中 | 通常通过类定义,实现业务逻辑的控制流程 | 通常通过类定义,实现数据的属性和行为 |
依赖关系 | 依赖于数据库连接和SQL语句 | 依赖于Mapper层或其他Service层的接口 | 依赖于Controller层的业务逻辑处理结果 | 依赖于数据库表的结构 |
设计目的 | 实现数据的持久化操作 | 封装业务逻辑,提高代码的复用性和可维护性 | 处理用户请求,协调前后端交互 | 映射数据库表,简化数据操作 |
注:CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。