关于解决使用Mybatis-Plus将数据库数据通过接口显示时后端日志反馈正确,前端为空的问题。

103 阅读1分钟

问题描述

编写JavaBean时想着保持属性名和数据字段名一致,即exam_id和exam_title,结果发现后端在打印日志的时候发现可以正常获取数据库当中的值,但是直接用localhost:8080/exams访问数据的时候,返回的为[null,null]

@GetMapping("/exams")
public List<Exams> exams(){
    return examsMapper.selectList(null);
}
@Mapper
public interface ExamsMapper extends BaseMapper<Exams> {
}

image.png

image.png

image.png

4181684422149_.pic.jpg

追根溯源

java里面默认是驼峰命名规范。

Mybaits有一个自动转驼峰的配置。

解决方案

按照规范,应该把Java bean的字段改成驼峰。

例如exam_id 改成examId,exam_title 改成examTitle

4271684422469_.pic.jpg

拓展

Java bean没有get set方法, 虽然@Data注解封装了get 和set方法,但是如果要修改这个业务对象的值,例如前端传进来的对象,就要判定是否满足条件,如果满足,就把状态字段设置为1,然后更新这条记录,总不能全部写sql。

还有,如果要获取对象的字段值呢?即将多个数据对象,分别抽取几个字段,拼装成一个视图层的视图对象。不一定是数据对象DO,也可能是VO视图对象,DTO数据传输对象,BO业务对象,在实际业务流程中会有很多不同的数据对象。