目的:为了解决数据库中的字段与实体类中的属性不匹配的问题
数据库中的字段为:id,name,pwd
实体类的属性分别为:id,name,password
@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
private int id;
private String name;
private String password;
}
举例:在查询时,要将数据库中的值赋给User实体类时,由于pwd和password无法对应,会导致实体类无法接收数据库中的pwd字段,查询时pwd会显示为null。
<select id="queryUserById" resultType="User">
select * from user where id=#{id}
</select>
@GetMapping("/queryUserById/{id}")
public User queryUserById(@PathVariable("id") int id){
User user=userMapper.queryUserById(id);
return user;
}
访问127.0.0.1:8080/queryUserById/5结果为:
解决方案使用ResultMap:
<resultMap id="UserMap" type="User">
<result column="id" property="id"></result>
<result column="name" property="name"></result>
<result column="pwd" property="password"></result>
</resultMap>
<select id="queryUserById" resultMap="UserMap">
select * from user where id=#{id}
</select>
要点:
<select id="queryUserById" resultMap="UserMap">
中的resultMap
的值应与<resultMap>
标签的id值对应- type为实体类名字
- column表示数据库中的字段,property为实体类中的属性,目的就是为了建立起一一对应的关系