MyBatis查询结果使用自定义Bean对象Set方法无效问题解
2022-01-10 本文已影响0人
想象之中丶意料之外
问题:
-
通过MyBatis查询数据后,返回一个Java Bean,想通过Bean中属性的 set方法中来做判断空值处理。但是发现无效问题解决
-
举例:通过MyBatis查询结果给User对象赋值sex时,调用sex的setSex()方法,来同时完成对 sex_desc字段的赋值。
public class User {
private int id;
private String name;
// 性别:男 true,女 false
private boolean sex;
// 性别描述:用于前端展示,数据库无此字段
private String sex_desc;
/**
* 想法:通过MyBatis查询结果给User对象赋值sex时,调用sex的setSex()方法,
* 来同时完成对 sex_desc字段的赋值。
*/
public void setSex(boolean sex) {
if (sex) {
this.sex_desc = "男";
} else {
this.sex_desc = "女";
}
}
}
遇到问题:
- 发现MyBatis在给sex字段赋值时,没有setSex()方法。
解决:
- 如果数据库中,sex字段为null值时,那么MyBatis是不会进行赋值处理【只是举例,可能boolean类型,不适合这个结果。但是String类型亲自测试过,是这样的】