首先說一下,我的數據庫名字叫mybatis,里邊有一張user表,表中有三個字段,id、name、pwd;然后實體類中對應三個屬性id、name、password(id和name跟數據庫字段名一致,但是第三個屬性password和數據庫的字段pwd不同)
解決方案
方式一:起別名
在映射文件中給sql語句里的字段取別名
<select id="getUserById" parameterType="int" resultType="user"> select id,name,pwd AS password from mybatis.user WHERE id = #{id} </select>
*注意:
若數據庫字段名和實體類的屬性名相同,則可以不用取別名
方式二:使用resultMap(結果集映射)
<resultMap id="UserMap" type="user"> <result column="pwd" property="password"/> </resultMap> <select id="getUserById" parameterType="int" resultMap="UserMap"> select * from mybatis.user WHERE id = #{id} </select>
注意:
若數據庫字段名和實體類的屬性名相同,則resultMap中可以不用寫它們的result標簽。當然寫上也是沒關系的,例如:
<resultMap id="UserMap" type="user">
<result column="id" property="id">
<result column="name" property="name"> <result column="pwd" property="password"/> </resultMap> <select id="getUserById" parameterType="int" resultMap="UserMap"> select * from mybatis.user WHERE id = #{id} </select>
