Mybatis-04-ResultMap結果集映射
解決屬性名和字段名不一緻的問題
資料庫中的字段
實體類的屬性
public class User {
private int id;
private String name;
private String password;//注意和資料庫中的pwd不一樣
}
查詢時出問題
User{id=1, name='void', pwd='null'}
User{id=2, name='cmy', pwd='null'}
User{id=4, name='小明', pwd='null'}
User{id=5, name='明天', pwd='null'}
根源在于
<select id="getUserlist" resultType="user">
<!--下面的*寫全是id,name,pwd-->
select * from mybatis.user
</select>
由于屬性名password和資料庫中的字段名pwd不一緻,是以查出來為null
解決方法1------>起别名
<select id="getUserlist" resultType="user">
select id,name,pwd as password from mybatis.user
</select>
解決方法2------>結果集映射
<resultMap id="userMap" type="User">
<!--字段和屬性一樣的可省略-->
<result column="pwd" property="password"/>
</resultMap>
<!--這裡不用resultType用resultMap做結果集映射-->
<select id="getUserlist" resultMap="userMap">
select * from mybatis.user
</select>
在一對多,多對多時結果集映射将起大作用