SSM(spring springmvc maybatis)整合中各个层的作用以及写法


前言

在学习SSM中,产生了对表现层中Controller层的编写理解以及服务层Service层的编写理解和持久层功能与编写的理解

例如:在controller中主要是写接口,实现某一功能,完成某一操作,在这一层它也接受前端变现层所发来的数据,并响应数据,所以,这一层也应该包含对前端数据的处理和对服务层操作的判断.


从唯物主义与人本主义角度来看,一切的诞生应该是为人所用,因此,我更偏向于从业务的基础入手,也就是当前端发出一个需求,后端如何一步步处理,例如在一个学生管理系统中,我们现在要实现一个<<根据姓名分页查询学生>>:

一、表现层(controller(接口))

1.接受前端的请求数据并作出判断

前端传来三个参数
在这里插入图片描述
这里我们首先接受数据,然后思考我们需要调用一个怎样的服务呢?很明显是分页查询:
在这里插入图片描述

2.调用服务层完成功能

如图所示,我们首先对前端的数据进行处理,封装为一个page对象,然后通过把这个page对象作为参数,调用一个page分页查询的服务.
在这里插入图片描述

3.对调用结果进行判断,决定返回给前端的数据

在这里插入图片描述

二、服务层(service(服务))

1.对controller层传来的判断过的数据进行使用,完成一些服务,例如CRUD

这里对传来的page对象和封装器对象进行使用,完成页面查询服务.
在这里插入图片描述

2.对持久层进行调用

同时对持久层mapper映射文件进行调用.

三、持久层(mapper(映射)+entity(实体))

1.定义mapper,可以是一个表的映射,一个功能的映射,将上层的调用操作实质性应用到数据库中

这里使用mybatisplus,省略了一些繁琐的crud操作.
在这里插入图片描述
这里当我们需要查询多个表时,我们的mapper文件便不是只映射一个实体类,所以,我们便可定义一个功能的mapper,用来映射多个实体类.例如L:在这里插入图片描述

2.其次,定义需要的实体类,用到哪个表就定义哪个表的实体类

查询学生页面,是查询学生表,所以首先我们定义需要的学生表实体对象,此时如果时多个表,我们需要通过定义一个实体类来包含两个数据表的信息,具体情况,具体分析,有时也需要定义并不是任何表的信息,主要从mapper需要的层面来考虑实体类的需求.
在这里插入图片描述

总结

一个controller可能会有多个service(可能是一个表的多个service,也可能是一个服务对应多个表的service),
因此一个service又不仅仅是一个mapper,也可能是多个表操作的mapper,即使是一个表的mapper,一个服务也可能含有多个不同的操作,也就是多个不同的mapper.
由此,三个层的作用便区分出来了.

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值