01 案例-员工管理-新增员工
需求分析
查看接口文档
controller层接受前端数据
@PostMapping
public Result save(@RequestBody Emp emp) {
log.info("新增部门:{}",emp);
//调用service方法新增部门
empService.add(emp);
return Result.success();
}
service写add方法
void add(Emp emp);
serviceImp写具体的实现
@Override
public void add(Emp emp) {
//要写怎么实现新增部门了
//补全基础属性
emp.setCreateTime(LocalDateTime.now());
emp.setUpdateTime(LocalDateTime.now());
//插入数据
empMapper.insert(emp);
}
Mapper层写与数据库的交互
//前面是字段名称(数据库),后面是属性名(pojo实体类)
@Insert("insert into emp(username,name,gender,image,job, entrydate, dept_id, create_time, update_time) " +
"values (#{username},#{name},#{gender},#{image},#{job}, #{entrydate}, #{deptId},#{createTime},#{updateTime})")
void insert(Emp emp);
02 案例-员工管理-文件上传
本地
前端文件上传三要素,一个表单"file",表单提交方式得是post,enctype得是"multipart/form-data"(编码格式)普通默认的编码格式不适合传输大的二进制数据
从资料中找到upload.html移动到spring boot的static文件夹下面
如果不设置enctype,直接上传,点击控制台,查看post请求头,发现在content-type上为默认的"application/x-www-form-urlencoded: The default value."
不改编码格式的话,解码的是文件的文件名而不是文件内容
服务端的操作:该怎么处理正常就行,要保持形参名称和表单项名称一致,如果不一致要用RequestParam绑定
在服务端断点调试得到image的路径,
打开发现有三个文件
修改第一个文件为1.txt,发现内容为Tom
再看看第三个文件大小,刚好和所上传的图片大小相一致
代码UploaderController
package com.itheima.controller;
import com.itheima.pojo.Result;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@Slf4j
@RestController
public class UploadController {
@PostMapping("/upload")
public Result upload(String username, Integer age, MultipartFile image){
log.info("文件上传:{}, {}, {}",username, age, image);
return Result.success();
}
}
03 案例-文件上传-本地存储
解决如何将接受到的文件存储在本地的问题
06 案例-文件上传-阿里云OSS-集成
需求,接受上传的图片,保存起来并能回显到前端
开发步骤:
1.引入阿里云OSS上传工具类(由官方示例代码改造而来)
2.开发图片上传接口
07 案例-修改员工-查询回显
08 案例-修改员工-修改员工
思路
09 案例-配置文件-参数配置化
pom.xml是maven的配置文件
application.properties是spring boot的配置文件
在application.properties中写入配置后,就不需要再AliOSSUtils中写死了
通过Value能写清楚AliOSSUtils里面注入的是哪个配置文件的东西
10 案例-配置文件-yml配置文件
注意缩进和空格!
yml语法
yml数据格式
如果密码第一个数字为0,且最大的数字不超过8,会认为你是八进制数字,导致密码错误。我搞了两个小时