今日完结任务:
完成了员工信息分页查询的功能,以及修改员工状态信息的接口。
今日收获:
1.分页查询接口:
复习了PageHelper的用法。
@Override
public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {
// 设置分页参数
PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());
//PageHelper要求我们返回一个Page对象,泛型就为employee实体类
Page<Employee> page = employeeMapper.pageQuery(employeePageQueryDTO);
long total = page.getTotal(); // 获取总记录数
List<Employee> result = page.getResult(); // 获取一页的数据列表
return new PageResult(total,result);
}
并且它的底层是居于Mybatis拦截器和动态SQL来实现的。首先Mybatis的拦截器会拦截SQL的执行过程,并且再其执行前对其改写;动态SQL它会在原始的SQL的基础上添加分页查询的逻辑。
2.了解了对日期进行格式化处理的两种方法
- 在日期属性前加上注解
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
但这种方式仅适用于日期属性较少的情况下。
- 利用消息转换器统一对日期进行格式化处理
在WebMvcConfiguration中扩展SpringMVC的消息转换器,统一对日期类型进行格式处理
/**
* 扩展SpringMVC框架的消息转换器
*/
@Override
protected void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
log.info("扩展消息转换器。。。");
//创建一个消息转换器
MappingJackson2HttpMessageConverter converter = new
MappingJackson2HttpMessageConverter();
//需要为消息转换器设置一个对象转换器,对象转换器可以将java对象序列化为json数据
converter.setObjectMapper(new JacksonObjectMapper());
//将自己的消息转换器加入converters容器中
converters.add(0,converter); // 0:把它放到容器的第一个
}
核心就是要创建了一个 MappingJackson2HttpMessageConverter 的实例。MappingJackson2HttpMessageConverter 是Spring提供的一个消息转换器,专门用于处理JSON格式的数据。
它的作用是:
将Java对象序列化为JSON格式(响应)。
将JSON数据反序列化为Java对象(请求)。
时间格式定义在JacksonObjectMapper中
package com.sky.json;
public class JacksonObjectMapper extends ObjectMapper {
//.......
public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm";
//.......
}
}
自定义的 JacksonObjectMapper 可能包含一些特定的配置,比如:
设置日期格式。
忽略未知字段。
配置序列化/反序列化的规则。
3.实现了修改员工状态信息的接口(启用或禁用)
了解了通过构造器builder来设置对象的属性。
public void startOrStop(Integer status, long id) {
//利用Bulider构造器来创建对象属性
Employee e = Employee.builder()
.status(status)
.id(id)
.build();
//动态更新(传入一个employee来选择性的动态更新),这样只需写一个sql语句就可以完成多种更新操作
employeeMapper.update(e);
Builder是通过注解的方式声明的。

总结:
今天因为上了一天课所以完成的接口比较少,不过回忆起来很多之前Javaweb学的知识点。并且也了解了一些新的优化代码的方式。感觉自己每天的进度还是有点慢,还得搞自己课题上的事情,好好加油吧。
如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!
1593

被折叠的 条评论
为什么被折叠?



