天天看點

Mybatis-04-ResultMap結果集映射Mybatis-04-ResultMap結果集映射

Mybatis-04-ResultMap結果集映射

解決屬性名和字段名不一緻的問題

資料庫中的字段

Mybatis-04-ResultMap結果集映射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>
           
在一對多,多對多時結果集映射将起大作用

繼續閱讀