1. 程式人生 > 其它 >05學習mybatis之解決屬性名和欄位名不一致的問題

05學習mybatis之解決屬性名和欄位名不一致的問題

技術標籤:mybatismybatis

資料庫中的欄位
在這裡插入圖片描述
新建一個專案,拷貝之前的,測試實體類欄位名不一樣的情況

//實體類
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 的設計思想是,對簡單的語句做到零配置,對於複雜一點的語句,只需要描述語句之間的關係就行了。