MVC框架中Entity层,DAO层,Service层,Controller层的关系和区别

您所在的位置:网站首页 下面属于mvc设计模式的是 MVC框架中Entity层,DAO层,Service层,Controller层的关系和区别

MVC框架中Entity层,DAO层,Service层,Controller层的关系和区别

2024-07-10 11:17:22| 来源: 网络整理| 查看: 265

分层的作用:

在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。   

  entity层(model层 = entity层 = domain层)

entity层的作用: 用于存放的实体类,与数据库中的属性值基本保持一致。实现set和get的方法。

public class User { /* 用户id */ private Long id; /* 获取用户id */ public Long getId() { return id; } /* 设置用户id */ public void setId(Long id) { this.id = id; } } DAO层(mybatis的mapper层,数据访问层,data access object)

DAO层的作用:DAO层就是数据持久层,直接对数据库进行数据持久化操作。对某个表进行增删改查基本操作。

DAO层的设计:

首先是设计DAO任务的接口(增删改查),再设计其实现的类。然后在Spring的配置文件中配置接口和实现类的关联。DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。然后就可以在Service层中调用DAO层的接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类。                                                          public interface userMapper { int deleteByPrimaryKey(Long id); int insert(user record); int insertSelective(user record); user selectByPrimaryKey(Long id); int updateByPrimaryKeySelective(user record); int updateByPrimaryKey(user record); } Service层(服务层,逻辑层)

Service层的作用:对业务模块的逻辑应用设计。根据具体的业务逻辑封装Dao层的操作,对外表现为实现一种功能 / 服务。例如:网购生成订单时,不仅要插入订单信息记录,还要查询商品库存是否充足,购买是否超过限制等等。

Service层的设计:

同样是首先设计接口,再设计其实现的类,实现类中要调用dao层接口。每个接口分别封装一个服务的业务处理方法。具体实现在serviceImpl中。接着再Spring的配置文件中配置其实现的关联。这样我们就可以在Controller层中调用Service接口来进行业务处理。                      

DAO面向表,Service面向业务。后端开发时先在数据库中设计出所有表,然后对每一张表设计出DAO层,然后根据具体的业务逻辑进一步封装DAO层成一个Service层,对外提供成一个服务。

public interface UserService extends Service { }

service的 impl 是把mapper和service进行整合的文件。

Controller层( web 层,控制器)

Controller层的作用: 控制具体模块的业务流程。负责请求转发,接受前端传过来的参数,调用Serice层来实现这个业务逻辑,得到返回值,再传给页面。

在此层里面要调用Serice层的接口来控制业务流程,控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。      

@RestController @RequestMapping("/user") public class UserController { @Resource private UserService userService; @PostMapping("/add") public Result add(User user) { userService.save(user); return ResultGenerator.genSuccessResult(); } @PostMapping("/delete") public Result delete(@RequestParam Integer id) { userService.deleteById(id); return ResultGenerator.genSuccessResult(); } @PostMapping("/update") public Result update(User user) { userService.update(user); return ResultGenerator.genSuccessResult(); } @PostMapping("/detail") public Result detail(@RequestParam Integer id) { User user = userService.findById(id); return ResultGenerator.genSuccessResult(user); } @PostMapping("/list") public Result list(@RequestParam(defaultValue = "0") Integer page, @RequestParam(defaultValue = "0") Integer size) { PageHelper.startPage(page, size); List list = userService.findAll(); PageInfo pageInfo = new PageInfo(list); return ResultGenerator.genSuccessResult(pageInfo); } }

View层 此层与控制层结合比较紧密,需要二者结合起来协同工发。View层主要负责前台jsp页面的表示,           

 

 

 

                                                                                                                                                                                                                                                         



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭