mybatis javabean字段与数据库字段的映射
结论:未作映射的字段没有值,但是数据库中实际是有值的,说明如果带下划线的字段未作映射,返回值是不会有值的,只有映射了的字段以及不带下划线的字段(默认映射)才有返回值
1、bean属性
public class KnowledgeAttr {
private Integer Id; //不许为空
private Integer pointId; //不许为空 知识元id
private Integer domainAttrId; //不许为空 知识元属性id
private String attrName; // 知识元属性名称
private String attrValue;
private Integer attrState; //不许为空
private String attrValueFinal; // 知识元属性值
private String uuid;
2、数据库返回值映射,此处只映射了2个字段,(因为我们只需要这两个字段),可以看到还有几个字段带下划线没有映射。
@Select("SELECT * FROM KNOWLEDGE_POINT_ATTR WHERE POINT_ID=#{pointId}")
@Results(value = {
@Result(property = "attrName", column = "ATTR_NAME"),
@Result(property = "attrValueFinal", column = "ATTR_VALUE_FINAL")})
List<KnowledgeAttr> getRepeatJudge(Integer pointId);
3、controller调用返回对象KnowledgeAttr,如果正常,只有不带下划线的字段和已经映射到字段才有值
List<KnowledgeAttr> nameAndValueList = insertDataService.getRepeatJudge(knowledgePoint.getId());
4、可以看到返回值做了映射的 attrName,attrValueFinal 有值,未作映射的domainAttrId没有值,但是数据库中实际是有值的,说明如果带下划线的字段未作映射,返回值是不会有值的!!