文章目录
黑马程序员2023最新Java项目实战《苍穹外卖》,最适合新手的SpringBoot+SSM的企业级Java项目实战。项目视频
代码开发
根据分页查询接口设计对应的DTO:
之后所有的分页查询,同意封装成PageResult对象:
员工信息分页查询后端返回的对象类型为:Result
-
在EmployeeController类中编写员工分页查询方法
@GetMapping("/page") @ApiOperation("员工分页查询") public Result<PageResult> page(EmployeePageQueryDTO employeePageQueryDTO){ log.info("员工分页查询,参数为:{}",employeePageQueryDTO); PageResult pageResult = employeeService.pageQuery(employeePageQueryDTO); return Result.success(pageResult); }
-
调用employeeService实现分页查询操作,在EmployeeService扩展pageQuery方法
PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO);
-
在EmployeeServiceImpl中实现分页查询方法
public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) { // select * from employee limit 0,10 //开始分页查询 PageHelper.startPage(employeePageQueryDTO.getPage(),employeePageQueryDTO.getPageSize()); Page<Employee> page = employeeMapper.pageQuery(employeePageQueryDTO); long total = page.getTotal(); List<Employee> records = page.getResult(); return new PageResult(total,records); }
-
在EmployeeMapper类中添加方法,因使用动态SQL查询,SQL代码需要在映射文件EmployeeMapper.xml中完成
public interface EmployeeMapper { Page<Employee> pageQuery(EmployeePageQueryDTO employeePageQueryDTO); }
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.sky.mapper.EmployeeMapper"> <select id="pageQuery" resultType="com.sky.entity.Employee"> select * from employee <where> <if test="name != null and name !=''"> and name like concat('%',#{name},'%') </if> </where> order by create_time desc </select> </mapper>
功能测试
功能测试方式:1.通过接口文档测试;2.通过前后端联调
选择接口测试,接口网址:苍穹外卖项目接口文档
原因: 令牌校验出现问题,jwt令牌配置的有效时间为7200s(2h),上次使用的token已失效。
解决方式: 进入员工登录接口,点击发送生成新的令牌并进行全局参数设置即可。
成功响应:
代码完善
解决方式:
- 方式一:在属性上加入注解,对日期进行格式化
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
- 方式二:在WebMvcConfigfiguration中扩展Spring MVC的消息转换器,统一对日期类型进行格式化处理(更推荐)
/**
* 扩展Spring MVC框架的消息转换器
* @param converters
*/
protected void extendMessageConverters(List<HttpMessageConverter<?>> converters){
log.info("扩展消息转换器...");
// 创建一个消息转化器对象
MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
// 需要为消息转换器设置一个对象转换器,对象转换器可以将Java对象序列化为json数据
converter.setObjectMapper(new JacksonObjectMapper());
// 将自己的消息转换器加入容器中
converters.add(0,converter);
}
测试效果:
至此,员工分页查询部分代码开发测试完毕。