SpringBoot 中的mapper,service,controller,model理解_spring mapper是什么-程序员宅基地

技术标签: spring  spring boot  mybatis  

springboot 只是组装了spring和springmvc。

目录直通车

一、SSM(Spring+SpringMVC+MyBatis)架构

1、 SSM的工作原理

(1) SSM系统架构

(2) SSM程序执行流程

2、 MSCM是什么及其作用

(1) controller

(2) model 

(3) service

(4) mapper

二、 SpringBoot + Mybatis三层架构

实例图片及源码


一、SSM(Spring+SpringMVC+MyBatis)架构

这篇文章主要讲MSCM(这是我对mapper,service,controller,model的简称)的实际操作上的作用,已过滤口水话。后面会有实例图片及源码。

1、 SSM的工作原理

如果不先了解工作原理的话,说什么层都是一头雾水。我找了两张比较详细的流程图。

(1) SSM系统架构

(2) SSM程序执行流程

2、 MSCM是什么及其作用

(1) controller

控制层

相当于MVC的C层,controller通过service的接口来控制业务流程,也可通过接收前端传过来的参数进行业务操作。

(2) model 

数据模型层

相当于MVC的M层,存放实体类,与数据库中的属性值基本保持一致。

(3) service

业务逻辑层

主要是针对具体的问题的操作,把一些数据层的操作进行组合,间接与数据库打交道(提供操作数据库的方法)。

要做这一层的话,要先设计接口,在实现类。

(4) mapper

数据存储对象

相当于DAO层,mapper层直接与数据库打交道(执行SQL语句),接口提供给service层。

二、 SpringBoot + Mybatis三层架构

源码架构分析

最近一次更新时间:2019-8-6

我做 Java 开发以来差不多也有一年半的时间了,鄙人才疏尚浅,望君多多指教。当初步入Spring boot 之时,未曾学过Spring,你是否同我一样?一上来就拿了一套代码,想马上使用这套代码实现crud(增删改查),不料想居然连结构都搞不清楚   ^_^,请看下面,认真看完了没看明白,请老铁提刀砍我

实体类这一层,有的开发写成pojo,有的写成model,也有domain,也有dto(这里做参数验证,比如password不能为空等),实体类如果你不懂什么东西的话,那你就想成是范围。

mapper 是Mybatis 操作数据库的那一层,就是dao层。

service包含了serviceImpl(service接口的实现类) 是提供给controller 使用的,针对于某些业务将 dao 的对于某些表的crud进行组合,也就是说间接的和数据库打交道。

controller 通过调用service来完成业务逻辑。

我这里使用的是PostgreSql数据库,这个数据库是开源而且非常不错的。

(SpringBoot连接PostgreSql数据库:https://blog.csdn.net/qq_41647999/article/details/83311721

实例图片及源码

实例:

数据库:

运行效果:

下载地址

积分下载地址:https://download.csdn.net/download/qq_41647999/10739833

如果没有积分,百度云链接:https://pan.baidu.com/s/15UBAeg68mTIaQOy9ES7_Mw提取码:1uuo

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_38973118/article/details/105992622

智能推荐

SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame 解决方法_settingwithcopywarning: a value is trying to be se-程序员宅基地

文章浏览阅读2.5w次,点赞33次,收藏29次。1、首先展示下遇到的问题截图2、然后跟着这个错误的报错信息,点开下面链接有兴趣研究可以点开https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy蹩脚英语看半天没看明白,转战为自己研究3、简单代码复现问题~~~df = pd.DataFrame(np.random.randint(1,10,(4,5)),columns=["A._settingwithcopywarning: a value is trying to be set on a copy of a slice fro

s7-200 smart 运动控制_西门子s7-200smart脉冲输出控制伺服程序-程序员宅基地

文章浏览阅读5.7k次,点赞5次,收藏8次。需求:1-使用PLC发送脉冲控制伺服驱动器,驱动伺服电机,带动与齿轮带连接的伸缩杆定位;要求:1-位置可调;2-速度可调; 3-显示位置、速度状态;4-断电位置保持。一、资料查看1- S7-200 SMART CPU 提供了三种开环运动控制方法:运动控制向导,PTO(脉冲串输出)及PWM(脉宽调制);通过PROFINET连接V90实现基本定位控制从STEP 7-Micro/WIN SMART V2.4 和 S7-200 SMART PLC固件版本 V2.4开始增加了 PROFINET通..._西门子s7-200smart脉冲输出控制伺服程序

关于印发《测绘地理信息质量管理办法》的通知-程序员宅基地

文章浏览阅读1k次。关于印发《测绘地理信息质量管理办法》的通知来源: 国家测绘地理信息局国土测绘司 时间:2015-07-02 14:59:41 【大 中 小】国测国发〔2015〕17号各省、自治区、直辖市、计划单列市测绘地理信息行政主管部门,新疆生产建设兵团测绘地理信息主管部门:《测绘地理信息质量管理办法》已经国家测绘地理信息局局务会议审议通过,现予印发,请认真贯彻执行。经商国家质量监督检验检疫总局同意,1997_测绘地理信息质量管理办法

只需十四步:从零开始掌握Python机器学习(附资源)_python机器学习赵涓涓-程序员宅基地

文章浏览阅读211次。Python 可以说是现在最流行的机器学习语言,而且你也能在网上找到大量的资源。你现在也在考虑从 Python 入门机器学习吗?本教程或许能帮你成功上手,从 0 到 1 掌握 Python 机器学习,至于后面再从 1 到 100 变成机器学习专家,就要看你自己的努力了。本教程原文分为两个部分,机器之心在本文中将其进行了整合,原文可参阅:suo.im/KUWgl 和 suo.im/96wD3。本教程..._python机器学习赵涓涓

实时增量备份工具(rsync –daemon + inotify tools)-程序员宅基地

文章浏览阅读713次,点赞15次,收藏9次。实时增量备份工具(rsync –daemon + inotify tools)

一维数组转二叉树结构输出(2024-01-22)_一维数组 树结构 java-程序员宅基地

文章浏览阅读577次,点赞17次,收藏11次。1、一维数组自动生成二叉树,其它的文章基本都是生成二维数组,结构图形输出的很少。2、结构输出有“”/“\” 便于识别。//当前节点已经完成,从队列移出,//TreeNode 赋值给数组。//左子结点加入队列。* @param root 根节点。* @param i 第几行。* @param l 左节点。* @param r 右节点。//当前节点 没有左子结点。//当前节点 没有又子结点。* @param ans 数组。//数组赋值 / \。//数组为空直接返回。_一维数组 树结构 java

随便推点

信用卡新颖的攻击方式,黑客可非接触式卡进行交易-程序员宅基地

文章浏览阅读172次。网络安全研究人员披露了一种新颖的攻击方式,它可能使黑客欺骗销售点终端以使其与受害者的万事达卡非接触式卡进行交易,同时认为该卡是Visa卡。该研究报告是由国内知名网络安全组织东方联盟研究人员发表的,该研究报告是建立在去年9月进行的一项详细研究的基础上的,该研究涉及PIN旁路攻击,使不良行为者可以利用受害者的被盗或丢失的启用Visa EMV的信用卡来制造高价值在不知道卡PIN的情况下进行购买,甚至欺骗终端接受未经认证的离线卡交易。研究人员表示:“黑客可以将其与先前对Visa的攻击结合使用,从而绕过万

Java设计模式之行为型:状态模式_java中状态设计模式案例-程序员宅基地

文章浏览阅读1.1w次,点赞6次,收藏29次。在介绍状态模式之前,我们先来看这样一个实例:你公司力排万难终于获得某个酒店的系统开发项目,并且最终落到了你的头上。下图是他们系统的主要工作(够简单)。当你第一眼看到这个系统的时候你就看出来了这是一个状态图,每个框框都代表了房间的状态,箭头表示房间状态的转换。分析如下:房间有三个状态:空闲、已预订、已入住,状态与状态之间可以根据客户的动作来进行转换。定义每个状态的值。 publ..._java中状态设计模式案例

JavaScript — 原生js实现上传图片控件_js利用class实现上传图片组件-程序员宅基地

文章浏览阅读2.6k次,点赞2次,收藏15次。一、修改原生 input 样式html 结构<div class="card"> <input id="upload" type="file" accept=".jpg" /> <div class="view"> <!-- 上传成功后 --> <div id="imgContainer" class="img-container"> <img id="img" /&_js利用class实现上传图片组件

是德科技KEYSIGHT E4980A精密性LCR测试仪_keysight 4070电容测试精度-程序员宅基地

文章浏览阅读370次,点赞10次,收藏9次。此外,它还具有多种测量模式,可以根据不同的测试需求进行灵活的配置和使用。此外,它还具有很高的测量速度和采样率,可以在短时间内完成大量的测试和数据采集。它具有高精度、高稳定性和高分辨率的测量特点,可以满足各种电子元件和材料的分析和测试需求。此外,它还具有自动校准和校准验证功能,可以保证测量的准确性和可靠性。此外,它还具有自动校准和校准验证功能,可以保证测量的准确性和可靠性。它是一款四端仪器,可以测量电阻、电容和电感等元件的阻抗、相位和品质因数等参数,适用于各种电子元件和材料的分析和测试。_keysight 4070电容测试精度

我的白帽子之路:从一穷二白的骑手,到月薪26k的黑客-程序员宅基地

文章浏览阅读1k次。前两天偶然跟几个后台粉丝交流,才发现最近好消息还挺多。其中有个现在当了黑客的哥们(暂且叫他大刘)引起了我的注意,所以今天决定从技术和经验的角度,跟大家讨论一番。大刘当了两年的骑手,虽然每..._掌控安全学院优秀学员

/dev/tty /dev/ttyS0 /dev/tty0区别_vi /dev/ttys0-程序员宅基地

文章浏览阅读3k次。http://blog.chinaunix.net/uid-26696487-id-3207777.html/dev/tty /dev/ttyS0 /dev/tty0区别1、串行端口终端(/dev/ttySn)   串行端口终端(Serial Port Terminal)是使用计算机串行端口连接的终端设备。计算机把每个串行端口都看作是一个字符设备。有段时间这些串行端口设备通常被称为终端设备,因为 ..._vi /dev/ttys0

推荐文章

热门文章

相关标签