前后端分离------后端创建笔记(上)

本文章转载于【SpringBoot+Vue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客

仅用于学习和讨论,如有侵权请联系

源码:https://gitee.com/green_vegetables/x-admin-project.git
素材:https://pan.baidu.com/s/1ZZ8c-kRPUxY6FWzsoOOjtA 提取码:up4c
项目概述笔记:https://blog.csdn.net/m0_37613503/article/details/128961102
数据库笔记:https://blog.csdn.net/m0_37613503/article/details/128961401
前端笔记:https://blog.csdn.net/m0_37613503/article/details/128961447
后端笔记:https://blog.csdn.net/m0_37613503/article/details/128961569
 

1、第一步创建一个新项目:用Maven或者Spring Initializr都行

1.1 随便填一下

 Project SDK就是JDK的版本 

1.2 java版本选8

 1.3 设置springBoot版本

 1.4 打开Maven项目 ,添加一个spring的启动器和测试的启动器

 1.5 将笔记的配置依赖粘贴上去,等一会找到笔记

 1.6 找到笔记,配置依赖

 1.7 看一下配置,第一个是web场景的解放器,因为我们做的是web项目吗?:

1.7.1第二个是Mysql的坐标,因为我们用的是Mysql

 1.7.2 往下我们用的是Mybatis-plus

 1.7.3 因为生成器要用,我们导入freemWork,因为生成器要用,所以我们导入这个: 导入lombok,是为了简化我们的代码,比如我们创建一个实体类:

1.7.4 加一下redis的配置和依赖

 1.7.5 这里要修改一下配置文件

 1.7.6 我们先配置一下后端端口,前端端口和后端端口不在一起,后端端口我们放在9999上面

 1.7.7 使用他的数据源

使用用户名和密码:

1.7.8 配置数据库的url

 1.7.9 这里我们不用写连接池,因为springBoot有属于自己的连接池

如果你项目之中有特殊要求,要求替换,那么你就替换,那时你就要指定type属性,限定一下类

1.7.10 我刚才配置一下redis的依赖,因此我要配置一下端口 

 1.7.11 我的文件都在com.lantu这个文件下:下面这句话的意思是我们项目中debug信息都会打印出来。

 1.7.12 完成项目之后,我们跑一下项目,测试一下能不能用,这样就部署成功了

2、我们接下来做代码生成,Mybatis-plus的官网

2.1 到Mybatis-plus的官网(看样子,得看Mybatis-plus的视频)

 2.2 我们直接用,这里复制快速生成的代码,复制完代码之后,我们要创建一个类

2.3 我们要创建这个类,不能放到目录中,因为放到目录中,就会被打包到目录里:

2.4 放到test当中,而不是放到这个类当中,这里我创建的是一个CodeGenerator

 2.4.1 就写一个main方法,然后把这段代码copy过去,然后把Mybatis-plus的代码给复制过去

 2.4.2 alt + insert 导入一下包

 2.4.3 数据库的内容

 2.4.4 如果你想要提出一个参数,你可以提前设置一个参数,方便后期进行修改

 

 

 2.4.5 如果你最后重新运行,就会把生成代码给覆盖掉,这里的覆盖生成文件一定要注释掉。

 2.4.6 输出地址是输出的路径放到D盘

2.4.7复制绝对路径

 2.4.8 将我们java代码输出路径写在我们刚才复制的路径里:

2.4.9 父包名写在我们自己的目录中

 2.4.10 模块名你是需要修改的,因为你把他抽出来,再修改会十分方便

 这里替换成你给他写的目录

2.4.11 写在MapperXml生成路径,这里我们要写成变量的形式,这里等于Mapper的路径等于什么:

 2.4.12 这里路径要放到resource下面 

2.4.13 我们复制resouce下的路径

 复制都是绝对路径

但是这样写不好,具体老师讲的是他有一个默认的配置:

 

如果我直接放到resouces下是跟目录配不上的

 

 2.4.14 把MapperLocation给替换掉

 2.4.15 修改表名

2.4.16 我们可以看一下源码(看源码的方法,然后按住Ctrl键,鼠标点击Random类),他做了很多重载

2.4.17 可以设置排除表

2.4.18 我们可以用这三个里面任何一个

2.4.19 第三个表会产生一个对话分割,我路由有一张表,我可以写A表,B表,C表

 2.4.20  我这里有四张表

2.4.21 用户结论对照表,我将这四张表都写进去,这里看样子要学一下Mybatis

2.4.22 把tables放到下面位置

2.4.23 X_

 2.4.24 没有找到合适的驱动----这里给他注册一个更高的驱动

 

 2.4.25 后来发现报错的原因是,url和password没有写

2.4.26 改成这样就行

 2.4.27 接下来运行一下

2.4.28 在com.lantu下面成功生成了一个模块

2.4.29 控制器里面写的特别少,因为他不知道你写的是哪个方法:

2.4.30 实体类,没有x下滑前缀,因为我们把他给过滤掉了

2.4.31 类名是主键,都做了标识

 2.4.32 Mapper也写好了,这样就有表的增删改查能力

2.4.33 我们在serve里面就可以调方法,实现增删改查 

2.4.34 在控制器调增删改查控制器就全有了,等一会把Mybatis-plus过一遍:

2.4.35 他没有做扫描,现在我们做一下扫描,现在做*的意义在于,可能不仅只有这一个包

2.4.36 我们去查询所有的参数,以及得到一个集合

 2.4.37 我们测试一下,遍历一下,把user给打印出来

2.4.38 查询语句,Mybatis帮助我们将查询语句给做好了

 2.4.39 我们现在做的是测试类,但我们后期将通过控制器暴露我们的接口

 2.4.40 在我们userController中进行测试

 2.4.41在我们userController中装配Userservice对象

2.4.42 首先我们先写一个请求查询的数据getMapping,然后将上面的路径给改一下,上面这个路径现在全部是用户的,不想用sys前缀,: 

2.4.43 我用user进行开头

2.4.44  想查所有的数据,因此我用的是/all,这里返回的数据是List集合,我们查一下所有的用户

2.4.45 这里增删改查方法全都有的,我们想查集合,调List就可以

 

2.4.46 之后我们就可以访问到我们的后端, (“/all”),我们来测试一下,打开我们的启动类,重新运行 

2.4.47 通过观察我们可以看到启动成功

 3、第一次看到配置接口访问浏览器,看样子想利用接口,要掌握springBoot方面知识

 3.1     404 表示我们前面是对的,后面是错的

 3.2  回到配置接口的地方,老师讲这个查询已经做了,但是为什么还报错

 3.3 原因是我们控制器加的注解是不正确的,这里控制器写的内容就是接口的地址,以后找接口地址找控制器就行,加了@Controller,就意味着我们这里最终返回的就是一个视图:

3.4 但是我们返回的List肯定不是视图,所以他找不到视图404了,我们前后端对接,对接的标准是什么,我们交互的数据时json数据,所以我们就不需要这个注解了

3.5 改成RestController,标这个注解就意味着默认所有注解以返回json,处理为结局

 3.6 重启再试一下

 4、六条数据都出来的样子,第一次见到接口出来数据,好开心好开心(*^▽^*)

的样子 

 4.1 之后我们会做新增,删除,修改之类的方法,而每一次返回方法,每个参数都会不一样,这里就出现了一个问题,如果我们跟前端对接的话,返回的数据都不一样的话,那么还是很有问题的。

 4.2 如何形成统一返回数据格式,只要格式能保持统一就行,否则就对接不上,那么我们该如何让格式保持一致

 4.3 code代表接口返回的返回码,data表示返回数据,每一个接口返回的数据是不一样的

4.4 统一数据接口数据后端接口与前端接口的数据标准,我们需要创建一个类来统一这件事情

 4.5 在com.lantu下创建一个类,这个类的目的,返回一个规定的数据格式:

4.6 创建一个common.vo.result结果类

 4.7 我要写一个状态码:

 4.8 往前后端进行说明,针对客户端来进行中文的一个说明,我们就叫message,第三个参数,我们是不确定的,因此你可以选择使用object,但是你使用泛型更好,这里写成T就行,注意类上也要一个泛型<T>

 4.9 这里要加上Data注解,生成get和set方法:

 4.10 补全无参和实参构造方法:

 4.11 如果我们现在要用的话:我们需要返回userController

 4.12 将这种格式给套上,因为我们上面用的泛型,所以得改成泛型

4.13 如果我要返回他我要怎么做,我得new 一个

 4.14 接下来封装一下返回的数据对象

4.15 首先我们回到result类当中,设置静态方法:

4.15.1 这里我们是静态的,因此用static

 4.15.2 返回什么类型:Result<T>

 4.15.3 成功的方法下,我叫success,成功的情况下,我就new 一个return,new 一个result 

 4.15.4 这个代码你可以再进行封装,弄一个常量类,用一个枚举类再去封装,假如我没有数据返回前端,我只要返回这个东西就行了:

 4.15.6 static后面也要返回一个<T>泛型,否则系统识别不了

4.15.7 这个方法显然不能满足,因为显然我还要传入我指定的message和数据,

 4.15.8 利用这个方法做一下重载:

 4.15.8.1 现在我想返回一下数据,返回一个data,这样写就行

4.15.8.2  现在我不仅想返回一下数据,还想带个message过去(),这里等一会一定要把笔记看一下,把软件继续设计下去,这是最优解:

4.15.8.3 比如默认情况下,我返回一个失败

 4.15.8.4 由于每种情况都不一样,因此我们要做相应的重载

5 你看情况, 你做个那个你就采用那个方法

5.1 重新运行一下,查看一下,发现他是一个数组

 5.2 通过result类我们做了一个操作

 

6 接下来,我们来实现一下后端接口,首先我们看一下前端请求接口和响应的参数,F12之后,先点击netWork

6.1 看什么登录请求和地址

 请求地址和方式

7 PayLoad是携带的数据

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380103.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

提取视频多音轨: 魔力玄(Medlexo) V9.7 (2023-01-31更新)

软件名称 (Windows) 魔力玄(Medlexo) 一句简介 假如一个视频144mb&#xff0c;改后缀等于没转换。如果真正提取音轨&#xff0c;就能得到没转换过的原音轨&#xff0c;大小可能才4mb。 这是一个ffmpeg 以及 yt-dlp 图形化软件&#xff0c;这个工具大小3mb&#xff0c;可以一…

yama搜集的超超…全的下载音效的网站,持续更新

yama有时间就会更新搜集的音效下载网站&#xff0c;哼唧~ 1.Find Sounds.com 一个免费网站&#xff0c;用于在网上查找声音效果。它是一个网络搜索引擎。提供强大的功能&#xff0c;简单易用&#xff0c;我们平时找音频资源的时候就可以到这个网站找你需要的资源&#xff0c;…

RTT(RT-Thread)线程间同步(保姆级)

目录 线程间同步 信号量 信号量结构体 信号量的使用和管理 动态创建信号量 实例 静态创建信号量 初始化和脱离信号量 获取信号量 信号量的互斥操作 获取信号量函数 释放信号量 信号量同步实例 互斥量&#xff08;互斥锁&#xff09; 互斥量的使用和管理 动态创…

【网络编程·网络层】IP协议

目录 一、IP协议的概念 二、IP协议的报头 1、四位首部长度 2、16位总长度&#xff08;解包&#xff09; 3、8位协议&#xff08;分用&#xff09; 4、16位首部校验和 5、8位生存时间 6、32位源IP和32位目的IP 7、4位版本/8位服务类型 8、16位标识 9、3位标志 10、1…

无涯教程-Perl - lock函数

描述 此函数将咨询锁放在共享变量或THING中包含的引用对象上,直到该锁超出范围。 lock()是一个"弱关键字":这意味着,如果您在调用该函数之前已通过该名称定义了该函数,则将改为调用该函数。 语法 以下是此函数的简单语法- lock THING返回值 此函数不返回任何值…

Python接口自动化测试之UnitTest详解

基本概念 UnitTest单元测试框架是受到JUnit的启发&#xff0c;与其他语言中的主流单元测试框架有着相似的风格。其支持测试自动化&#xff0c;配置共享和关机代码测试。支持将测试样例聚合到测试集中&#xff0c;并将测试与报告框架独立。 它分为四个部分test fixture、TestC…

武汉大学计算机学院2010情景剧,武汉大学金秋情景剧大赛精彩落幕(组图)

作为金秋艺术节的“重头戏”&#xff0c;留香行板--情景剧大赛决赛于11月5日在信息学部大学生活动中心隆重开演。15个学院先后表演了精心编排的情景剧&#xff0c;最终经过激烈的角逐&#xff0c;新闻与传播学院凭借《方向》成功蝉联&#xff0c;与经济管理学院的《爱的礼赞》一…

快来带您了解中秋节的前世今生

中秋节是中国传统的节日&#xff0c;落在农历八月十五&#xff0c;一般是公历九月或十月上旬。 按中国古代历法的解释&#xff0c;八月是秋季的第二个月&#xff0c;称“仲秋”&#xff0c;八月十五又在仲秋之中&#xff0c;所以叫“中秋”。2022年&#xff0c;中秋节落在9月10…

MySQL数据库 *实验16 变量表达式和函数

只要你有想去的地方&#xff0c;全世界都会为你让路~ 1.定义一个变量x存放以下字符串 刘王张赵李钱朱何孙曾陈吴黄刘邓周毛江胡’&#xff1b; 2.定义一个变量len1存放x字符串的长度&#xff1b; 3.定义一个变量m1存放以下字符串 ‘依秋香巧花紫萱莉玉芳菊碧丽念雅红燕艳莲…

女孩砖厂打工照顾弟妹被网友拍下(图)

8日下午&#xff0c;网友“土家风情郎”在论坛贴出一组图片&#xff0c;反映贵州一名叫张倩倩的小女孩在砖厂打暑期工&#xff0c;还要照顾三个弟妹的情况&#xff0c;该帖发出后&#xff0c;许多网友赞赏女孩懂事。 年纪小小的她&#xff0c;有着同龄人少有的沉着淡定。 生活不…

opencv基础59-霍夫变换原理讲解及示例-cv2.HoughLines()->(直线,圆形检测)

霍夫变换是一种在图像中寻找直线、圆形以及其他简单形状的方法。霍夫变换采用类似于投票的方式来获取当前图像内的形状集合&#xff0c;该变换由 Paul Hough&#xff08;霍夫&#xff09;于 1962 年首次提出。 最初的霍夫变换只能用于检测直线&#xff0c;经过发展后&#xff0…

直播预告|EasyV全新倾斜摄影组件上线!提升大规模、高精度实景建模效率

倾斜摄影&#xff0c;也被称为斜摄影或倾斜摄影测量&#xff0c;是一种高精度、高分辨率的遥感技术&#xff0c;用于获取地表地貌、建筑物、自然环境等目标的三维信息。在城市级数字孪生可视化建设过程中&#xff0c;通常会使用倾斜摄影技术以增强地理信息分析和虚拟建模的能力…

线性回归学习总结

一 、引文 1 回归分析 回归是统计学上用来分析数据的方法&#xff0c;以了解两个或多个变量之前的关系。通常是建立被解释变量Y和解释变量X之间关系的模型。回归分析的最早形式是最小二乘法。 勒让德和高斯都将该方法应用于从天文观测中确定关于太阳的物体的轨道&#xff08;…

Java-低代码平台使用H2内存数据库

一、引言 作者目前在做的平台使用到了H2&#xff0c;这里介绍下使用场景、使用方式&#xff0c;出于以下两个原因会使用H2: 1、平台化的项目一般是用户使用脚本或者sql进行通用的执行&#xff0c;这样可以实现低代码平台&#xff0c;不需要管理类之间的引入、依赖、编译&#x…

制造业企业数字化转型之设备数据采集

导 读 ( 文/ 1894 ) 随着信息技术的快速发展和制造业的转型升级&#xff0c;企业数字化转型已成为保持竞争力和实现可持续发展的关键。在数字化转型过程中&#xff0c;设备数据采集作为重要的一环&#xff0c;发挥着关键的作用。设备数据采集通过收集、分析和利用设备所产生的数…

怎样找回e盘删除的文件夹?分享三种恢复方法

我们都知道&#xff0c;电脑可以划分多个区域来存储数据&#xff0c;例如C盘、D盘、E盘、F盘等&#xff0c;而不论是存储在哪个磁盘&#xff0c;都容易出现文件丢失的问题&#xff0c;那么电脑e盘文件夹删除了怎么恢复呢&#xff1f;下面小编分享一些方法&#xff0c;一起来看下…

C#多线程开发详解

C#多线程开发详解 持续更新中。。。。。一、为什么要使用多线程开发1.提高性能2.响应性3.资源利用4.任务分解5.并行计算6.实时处理 二、多线程开发缺点1.竞态条件2.死锁和饥饿3.调试复杂性4.上下文切换开销5.线程安全性 三、多线程开发涉及的相关概念常用概念(1)lock(2)查看当前…

基于计算机的色彩描述

计算机中的色彩描述方法主要有RGB、CMY、Lab、HSB、sRGB、YUV、YCbCr、YIQ等。 CMYK色彩模式主要用于使用色料呈色的彩色设备。CMYK模式实质指的是再现色彩时单位面积上含C、M、Y、K点的百分比。 Lab色彩模式是建立在CIE 1976 L*a*b 颜色空间基础上的色彩模式&#xff0c;包含…

HSV色彩范围

一般对颜色空间的图像进行有效处理都是在HSV空间进行的&#xff0c;然后对于基本色中对应的HSV分量需要给定一个严格的范围&#xff0c;下面是通过实验计算的模糊范围&#xff08;准确的范围在网上都没有给出&#xff09;。 H: 0 — 180 S: 0 — 255 V: 0 — 255 此处把部分红色…

OBS推流时的视频色彩相关参数设置

在使用OBS进行推流直播时&#xff0c;特别是采集卡采集摄像机信号进行推流直播时&#xff0c;我们可能会遇到这样的问题&#xff1a;   1.为什么流信号与源信号相比有色彩偏差&#xff1f;   2.明暗对比较大的视频信号&#xff0c;比如有树荫和太阳&#xff0c;在摄像机上可…