本教程笔记是博主第二次想重新考自己敲出来,同时有过一次学习经验,所以本章会精简化,着重一些当时模糊的知识点,同时以实操记录关键处理部分,会加如一些自己对功能的理解,本章还在持续更新.

开启敲代码前的准备?

1.把打包好的nginx放到没有中文的路径-->什么是nginx?(简单理解)

2.把代码从gitee下拉过来(因为我是第二遍所以就直接用重启一个新的分支了,大家要用可以拉取我的仓库,也可以按照视频资料的文件)

3.数据库,把数据库的文件给放到datagrip里面运行.

4.前后端联调

Day1

1.1前端打包

这个打包好要放到没有中文的路径

把监听端口可以改成81,我这里因为81是点评在用

这里配置的是nginx的监听端口,nginx在81号端口上监听网页端,最后是将数据传入8080端口的服务器端

80经常会被占,新手上手不容易发现这个问题.

什么是nginx?--->大家可以去看看我的另一篇文章,如果着急速成那就先把上面两步整好.

1.2初始化代码

因为我已经完成一次了,所以我直接就用git开了一个新分支敲,大家不想用视频网盘资料也可以从我的仓库拉取

拉取教学看一看这篇,这里不详细说了

项目一共是这三个

common是一些通用处理

Pojo是贫血对象

server是

包含controller service  mapper  对应接受请求 处理逻辑  访问数据库

1.3数据库初始化

直接把这个sql文件丢到

直接运行即可

1.4把数据库的配置填好

yml是配置的文件

这里说明他启用的是dev也就是下面那个文件的--一般项目的配置文件都会有几个,灵活切换

把这里的用户名和密码改成自己的

用maven 重新compile一下

1.5前后端联调

启动niginx  运行程序  到浏览器去请求

双击即可

启动程序

浏览器输入

localhost:81

1.6登录 权限认证JWT

可以尝试一下调试断点,体会一下,前端发起请求在这里,可以看见请求进来的信息

正常来说前端应该传进来的是json格式的数据,为什么这里用类直接接收了呢?这里就是由springboot处理的?

详细了解看文章->

可以到service层去看一下登录方法的实现

跳转到快捷键是ctrl+b   ctrl+alt+b 可以自己多尝试使用

可以看见给token加了一串令牌,再返回给前端

那么这里又有疑问了这个拦截怎么实现的,怎么判断是不是这个用户或者管理员?

这就涉及到这篇jwt的文章了

这里又涉及到 这个封装的工具类 ,一般需要怎么封装,需要进行什么处理.

密码传到后端直接保存数据库太过于危险,所以要给进行加密(项目里面用的MD5加密)

详细讲解MD5以及使用方法我在另一个文章中写

具体步骤:

当前端把password传进来 咱们在service层里面登录部分去修改,同时因为不可逆,所以对比时也要再转换成加密形式的,数据库存的也得是加密形式的.

DigestUitls 类是Spring提供的里面有md5DigestAsHex()方法    传进去参数要求是bytes数组,

找到这个实现类-->login方法

这里的TODO标签就是用来标记没有完成的部分

我输出出来,再把加密后的放到数据库

把这一串放到数据库

e10adc3949ba59abbe56e057f20f883e

如果直接用图形化的别忘记点绿色箭头提交

成功

接口文档部分

这是资料里面的,我准备根据接口文档来开发

请求的话,我是用的apifox  把文件导入到apifox里面

关于接口文档和这些接口相关的api应用,请看这篇文档


新增员工

2025年4月23日

23:08

按照原本视频 先是员工部分

新增员工接口

那么从这一个接口文档可以拿到什么

包括请求路径 方式  格式 参数  返回数据

----分析设计----

一般是对产品原型分析,因为比较直观。思考录入项有没有什么限制。

密码采用默认密码,登录后可以进行修改。

接口定义如下(data一般是查询是会用到,msg一般是出错时会返回消息):

数据库设计如下:

现在员工的controller层搞一个接收

创建对应的dto类来接受请求参数

这个result是一个封装的结果类

这里发现对象类都在着实现接口,

Alt+回车

注意事项:

不应该直接用数字数字,否则会是硬编码,应该使用StatusConstant常量类。 

密码用默认密码转换md5然后存进去

测试一下

发现出错了,看了一下报错说的是username为空     --不合理--

发现了

没有赋值过去  0.o

这下好了

----------正常不应该上来就前后端联调这里我再来一份正常用apifox请求--------------

把JWT令牌时间调长一点,每次请求的里面都要带token

打个断点拿一下

eyJhbGciOiJIUzI1NiJ9.eyJlbXBJZCI6MSwiZXhwIjoxNzY2MDEyNDAyfQ.t08VO0erBR7MAcigpDevtQvo4cRZ_cGl8getpk3aW5I

把token放到全局变量

前置url用这个

不知道为什么我前面用localhost不行  (这里后面再调查,一直报404)

这里推荐大家用插件

--------------自己实现不看视频是有点吃力0.o,加油!------------------------

接下来把它完善好

问题1:录入的用户名已存在,抛出异常后没有处理,没处理的话,控制台会抛出错误P19。

用全局的异常处理器sky-server/handler/GlobalExceptionHandler,创建exceptionHandler方法,在方法里添加如下代码:

不使用全局异常处理,就在时不时的进行try catch,

全局异常处理类的实现我单独开一个文章来说明->

这里只看过程

还有id

员工分页查询

2025年9月26日

19:31

先去看看对应的dto类

这里返回数据除了result封装好的类的

code msg    date里面还多了-->total 和records

把这个一块放进去

records是一个页的list集合

-----------下面实现逻辑要用到插件PageHelper---------------------------

涉及到这个东西的使用方法,我放在别的文章里说

这个包下,这个包下有page类用来接收,然后start方法会自动进行limit和后续拼接

都是固定用法

然后去实现一下sql语句

找到对应的xml文件

在EmployeeMapper.xml中编写SQL语句,limit不用我们手写,pagehelper会自动帮我们追加拼接,order by是排序条件:

这里的写法和思路-------------之前是跟着视频没想太多--------这次自己写很多地方都很纳闷----------->思路分析放另一篇文章里

测试出问题

找到问题了返回

这个才对,前面打成pageResult了

List<员工>才对

服了自己了,把返回值从srvice开始把Employee 用代码补全成了PageResult {-_-} 

ok成功了

前后端联调发现时间格式有问题

回去看了一下教程-发现两种解决方法

方法1:

才发现项目已经预留好了这个

OK了

方法2:

添加一个这样的方法

在这个类中有对应的格式化方法

关于日期格式化--->详细看这篇文章

提交一下

再推送

启用禁用员工账号

2025年9月27日

19:36

这里带着参数进来

接收status和id然后去根据id修改他的状态

取的是路径参数,加注解@PathVariable,如果和路径参数不同名,就要加括号双引号指明取的是哪个路径参数@PathVariable("status") ;如果同名,就不用加

直接alt加回车快速生成

先写出框架

这里要用到<set> 和<if>

详细写法逻辑放到别的文章,这里放成果

注意这里mybatis错了,后面更改

编辑员工

2025年9月27日

20:12

这部分可以用刚刚写好的sql

只需要修改部分字段即可

然后这里还需要实现一个查询接口根据id,查询回显,然后修改

看一下传参在请求路径里面

无脑操作了

但是要注意不要把密码传回来

直接一句话

测试一下

ok点进修改有信息了

再接着实现修改接口

直接用之前的修改

修改一下手机号和账号

ok报错了

sql语句的问题,我看看

先写大体框架的时候,忘记把where id判断给整下去了

绿了<0.O>

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐