DTO
当需要封装的数据与实体类的属性差别较大时,可以新创建一个DTO来封装数据
在获取当前管理员id时,使用到的技术--ThreadLocal
客户端发起的每一次请求都是单独的线程
分页查询部分中,PageHelper的startPage方法底层原理
Service层分页查询源码:
- /**
- * 员工信息分页查询
- * time:2026-03-18
- *采用PageHelper插件实现分页查询
- * PageHelper.startPage方法会自动拦截后续的查询操作,并将分页参数传递给MyBatis,MyBatis会根据这些参数生成相应的SQL语句,从而实现分页查询的功能。
- * @param employeePageQueryDTO
- * @return
- */
-
-
- @Override
- public PageResult pageQuery(EmployeePageQueryDTO employeePageQueryDTO) {
-
- PageHelper.startPage(employeePageQueryDTO.getPage(), employeePageQueryDTO.getPageSize());
-
- //Page继承了ArrayList,所以它既是一个List集合,又包含了分页相关的信息,如总记录数、总页数等。
- Page<Employee> page = employeeMapper.pageQuery(employeePageQueryDTO);
-
- PageResult pageResult = new PageResult(page.getTotal(),page.getResult());
-
- return pageResult;
- }
复制代码 上述代码中,调用了PageHelper插件的startPage方法,其底层原理是利用了ThreadLocal存入了对应的值,然后在使用mybatis进行数据库操作时,会动态的添加到sql语句末尾(所以写xml格式的sql语句尽量不用加“;”号)
当后端传给前端的时间数据是json格式时,页面显示的时间可能并不是正常的格式
可以用以下两种办法解决:
方法二消息转换器源码:
重写的是 WebMvcConfigurationSupport 中的方法
[code]/** * 扩展mvc框架的消息转换器 * 消息转换器:将Controller方法的返回值转换为json格式的字符串响应给页面 * 转换时间格式:全局统一设置时间格式为yyyy-MM-dd HH:mm:ss * @param converters the list of configured converters to extend *///设置消息转换器,统一转换时间格式 @Override protected void extendMessageConverters(List |