基础环境搭建
构成
pojo提供数据类型
三层框架
首先是控制层controller,负责处理http请求,调用dervice返回数据
例如,DeptController.java
@Slf4j
@RestController
public class DeptController {@Autowiredprivate DeptService deptService;//@RequestMapping(value = "/depts" , method = RequestMethod.GET)@GetMapping("/depts")public Result list(){log.info("查询所有部门数据");List<Dept> deptList = deptService.list();return Result.success(deptList);}@DeleteMapping("/depts/{id}")public Result delete(@PathVariable Integer id){log.info("根据id删除部门:{}",id);deptService.delete(id);return Result.success();}
}
这是控制层的部门部分,定义了方法,路径,使用deptservice方法去获取员工数据,下面转到deptservice文件
public interface DeptService {/*** 查询所有的部门数据* @return 存储Dept对象的集合*/List<Dept> list();void delete(Integer id);
}
deptservice接口里面使用list方法去获取了数据
那么这个list方法的实现在deptservicelmpl.java文件里面,移步到该文件,定义了list方法和delete方法
public class DeptServicelmpl implements DeptService {//集成deptservice接口@Autowiredprivate DeptMapper deptMapper;@Override//这里定义list方法,返回该数据public List<Dept> list() {List<Dept> deptList = deptMapper.list();return deptList;}@Overridepublic void delete(Integer id){deptMapper.deleteById(id);}
}
然后方法里的deptMapper.list()又调用了deptMapper里面的方法,将数据库返回的数据相应到了list里边,
至此整个数据的响应完成
条件筛选查询
首先在enpcontroler里面配置好查询筛选参数
public Result page(@RequestParam(defaultValue = "1") Integer page,@RequestParam(defaultValue = "10") Integer pageSize,String name, short gender,@DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate begin,@DateTimeFormat(pattern = "yyyy-MM-dd")LocalDate end){//输入日志log.info("分页查询参数{},{},{},{},{},{}",page,pageSize,name,gender,begin,end);//调用empservce方法返回参数PageBean pageBean=empService.page(page,pageSize,name,gender,begin,end);return Result.success(pageBean);}
然后再page里面实现
接口声明方法
public interface EmpService {//接口里边声明方法PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end);
}
然后实现方法
public PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) {// 设置分页参数PageHelper.startPage(page, pageSize);// 执行查询List<Emp> empList = empMapper.list(name, gender, begin, end);// 获取Page对象
// Page<Emp> p = (Page<Emp>) empList;Page<Emp> newPage = new Page<>();newPage.addAll(empList);newPage.setTotal(empList.size());// 封装到pageBean中PageBean pageBean = new PageBean(newPage.getTotal(), newPage.getResult());return pageBean;
}
关于list的查询语句
使用EmpMapper进行映射
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.itheima.mapper.EmpMapper"><select id="list" resultType="com.itheima.pojo.Emp">select *from emp<where><if test="name!=null ">name like concat('%',#{name},'%')</if><if test="gender!=null">and gender=#{gender}</if><if test="begin!=null and end != null">and entrydate between #{begin} and #{end}</if></where>order by update_time desc</select>
</mapper>
这里我运行的时候会报一个错
这是我原来的page方法
public PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) {// 设置分页参数PageHelper.startPage(page, pageSize);// 执行查询List<Emp> empList = empMapper.list(name, gender, begin, end);// 获取Page对象Page<Emp> p = (Page<Emp>) empList;// 封装到pageBean中PageBean pageBean = new PageBean(p.getTotal(), p.getResult());return pageBean;}
更改后的page方法
public PageBean page(Integer page, Integer pageSize, String name, Short gender, LocalDate begin, LocalDate end) {// 设置分页参数PageHelper.startPage(page, pageSize);// 执行查询List<Emp> empList = empMapper.list(name, gender, begin, end);// 获取Page对象Page<Emp> page_result = new Page<>();page_result.addAll(empList);page_result.setTotal(empList.size()); // 设置总记录数// 封装到pageBean中PageBean pageBean = new PageBean(page_result.getTotal(), page_result.getResult());return pageBean;}
from表单,图片上传功能
文件上传,如果文件为图片,那么必须带上enctype="multipart/form-data"
UUID(Universally Unique Identifier)是一种标准的128位标识符,通常用于唯一标识信息。在Java中,UUID 可以用于生成唯一的ID,例如在创建新记录时为实体生成唯一的标识符
这个设置在resouces中的application.properties中设置
SDK
SDK(Software Development Kit)是一组工具、库和文档,用于帮助开发者更方便地开发、集成和部署软件应用。SDK 提供了预定义的接口和功能,使得开发者可以快速构建应用程序而无需从头开始编写所有代码。
springboot配置文件
总结来说,该项目的文件功能过于分散,不便于维护以及集中管理
参数配置化
那么对于阿里云的配置文件,可以直接放到springboot配置文件中的application中,java提供了value注解,通常用于外部配置的属性注入,具体用法为:@value(“${配置文件中的key}”) – 参数配置化