1. 程式人生 > 實用技巧 >mybatis_解決資料庫欄位與實體類屬性不一樣的問題

mybatis_解決資料庫欄位與實體類屬性不一樣的問題

解決屬性名和欄位名不一致的問題

1、問題

資料庫中的欄位

新建一個專案,拷貝之前的,測試實體類欄位不一致的情況

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="getUserById" resultType="com.kuang.pojo.User">
        select id,name,pwd as password from mybatis.user where id = #{id}
    </select>
    

2、resultMap

結果集對映

id   name   pwd
id   name   password
<!--結果集對映-->
<resultMap id="UserMap" type="User">
    <!--column資料庫中的欄位,property實體類中的屬性-->
    <result column="id" property="id"/>
    <result column="name" property="name"/>
    <result column="pwd" property="password"/>
</resultMap>

<select id="getUserById" resultMap="UserMap">
    select * from mybatis.user where id = #{id}
</select>
  • resultMap 元素是 MyBatis 中最重要最強大的元素
  • ResultMap 的設計思想是,對於簡單的語句根本不需要配置顯式的結果對映,而對於複雜一點的語句只需要描述它們的關係就行了。
  • ResultMap 最優秀的地方在於,雖然你已經對它相當瞭解了,但是根本就不需要顯式地用到他們。
  • 如果世界總是這麼簡單就好了。