当数据库字段名和类属性名不一致时,查询的结果出现了null值
数据库中的表如下
users(id,username,password)
Java类
public class user {
private int id;
private String username;
private String psw;
@Override
public String toString() {
return "user{" +
"id=" + id +
", username='" + username + '\'' +
", psw='" + psw + '\'' +
'}';
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPsw() {
return psw;
}
public void setPsw(String psw) {
this.psw = psw;
}
}
解决方案
1、把字段名和属性名设置为一致的
2、使用结果集映射 ResultMap
<resultMap id="UserMap" type="User">
<!-- id为主键 -->
<id column="id" property="id"/>
<!-- column是数据库表的列名 , property是对应实体类的属性名 -->
<result column="username" property="username"/>
<result column="password" property="psw"/>
</resultMap>
<select id="selectUserById" resultMap="UserMap">
select id , name , password from user where id = #{id}
</select>
3、取别名![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/82ec458f808495b742027d46f10849b0.png#pic_center)
这个也是通过第二种方式解决的:
Mybatis多表连接查询字段相同内容被覆盖的问题