05學習mybatis之解決屬性名和欄位名不一致的問題
阿新 • • 發佈:2021-02-02
資料庫中的欄位
新建一個專案,拷貝之前的,測試實體類欄位名不一樣的情況
//實體類
public class User {
private int id;
private String name;
private String password;
原因:
select * from mybatis.user where id= #{id} ==> select id,name,pwd from mybatis.user where id= #{id}
第一種解決方法:
- 起別名
select id,name,pwd as password from mybatis.user where id= #{id}
resultMap
第二種解決方法:
結果集對映
<!--namespace=繫結一個對應的Dao/Mapper介面-->
<mapper namespace="com.li.dao.UserMapper">
<!-- 結果集對映-->
<resultMap id="UserMap" type="User">
<!-- column資料庫中的欄位,property實體類中的屬性 -->
<result column=" id" property="id"></result>
<result column="name" property="name"></result>
<result column="pwd" property="password"></result>
</resultMap>
<select id="getUserById" resultMap ="UserMap">
select * from mybatis.user where id= #{id}
</select>
</mapper>
- resultMap 元素是 MyBatis 中最重要最強大的元素。
- ResultMap 的設計思想是,對簡單的語句做到零配置,對於複雜一點的語句,只需要描述語句之間的關係就行了。