实体类的属性和数据库的字段不匹配


实体类

public User(int id, String name, String password) {
        this.id = id;
        this.name = name;
        this.password = password;
    }

数据库

我们发现这里实体类的属性和数据库的字段不对应(password和pwd)

运行结果

User{id=3, name='李四', password='null'}
User{id=4, name='李三', password='null'}

这里的password是空的。原因是MyBatis自带一个类型构造器,会在‘背地里’创建与数据库相对应的实体类属性,所以password没有对应的数据库字段

解决方法

1,给pwd取别名为password

 

运行结果

User{id=3, name='李四', password='1231233'}
User{id=4, name='李三', password='123123'}

2,应用resultMap


        
    
    

注意这里的 type="User",我取了别名,如果没有取别名,要把类的绝对路径写全

运行结果

User{id=3, name='李四', password='1231233'}
User{id=4, name='李三', password='123123'}