关于Controller,Service,Dao三层架构的理解以及Mybatis的关系

Controller:处理请求映射

Service层:系统的业务逻辑

DAO层(也叫Mapper):直接操作数据库的代码(mybaitisDAO层框架

为了更好的降低各层之间的 耦合度(系统的复杂度,采用面向抽象变成。即上层对下层的调用,是通过接口实现的。而下层对上层的真正服务提供者,是下层接口的实现类。服务标准(接口)是相同的,服务提供者(实现类)可以更换。这就实现了层间解耦合

对于登陆,注册功能。我们使用三层架构:mybaitis是在DAO层实现,mybaitisDAOMapper)层框架。

目前我能确定三层架构和MVC架构看着很相似,但是是有区别的。三层架构是纯粹一层层向下直接调用。各层分工。

三层架构,dao层用的是mybatis(持久层框架)的例子:

yml配置文件:

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系_第1张图片

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系_第2张图片

Bean/douyinman是entity实体类,与数据库表中的数据项一致:

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系_第3张图片

数据库:

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系_第4张图片

Mapper层(也叫dao层)dao(mapper) DAO层叫数据访问层,全称为data access object,持久层直接和数据库打交道mapperdao都是数据层进行crud的实现方式(Dao还有层持久层的意思),它们的本质感觉就是对jdbc进行了一层封装,屏蔽了底层的加载数据库驱动的重复的操作,让我们把更多的时间用在关注写和实现

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系_第5张图片

我们使用的是xml版的mybaits操作,如下是mybatis-config.xml

的操作,这里实现了Mapper层的是具体操作。具体通过mybaitis的自动代理实现

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系_第6张图片

Service层(业务层):

service层负责整合mapper层供外部调用。

Service层的业务实现,具体要调用到已定义的mapper层的接口,封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。如果没有service层,代码全聚到一起维护和调试起来会比较麻烦。

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系_第7张图片

Service层接口:

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系_第8张图片

Sercive实现类:

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系_第9张图片

Controller层:

Controller层,控制层,用于控制逻辑,其最核心的作用在于控制后端与前端的交互。

其实前端与后端的交互,大部分情况下,还是通过交换json数据来进行交互的, 两者的交互核心还是在浏览器中进行,前端给你一个请求,后端返回一个数据去响应这个请求,前端再根据后端这个回应去做出相对应的反应,这也就是最基础的前后端的交互,

关于Controller,Service,Dao三层架构的理解以及Mybatis的关系_第10张图片

为什么要分3层架构呢?

方便团队分工,一个程序员单独完成一个软件产品不是不可以,但遇到大型软件需要团队配合的时候问题就来了,由于每个程序员风格不一样,而开发软件大量的代码风格不统一就会造成后期调试和维护出现问题,然而软件分层后,每个层合理分工这样的问题便迎刃而解。规范代码,在开发软件时对每个层的代码进行规范,固定开发语言的风格。忽略数据库差异,当软件系统要换数据库时,只要将数据访问层的代码修改就好了。实现"高内聚、低耦合"。把问题划分开来各个解决,易于控制,易于延展,易于分配资源。

你可能感兴趣的:(java,开发语言,mvc,spring)