<label id="oakn9"><ruby id="oakn9"><input id="oakn9"></input></ruby></label>

<button id="oakn9"><acronym id="oakn9"><input id="oakn9"></input></acronym></button>

resultMap 元素是 MyBatis 中最重要最強大的元素,它可以讓我們從JDBC ResultSets 數據提取代碼中解放出來。

我們的程序更可能會使用 JavaBean 或 POJO(Plain Old Java Objects,普通老式 Java 對象)作為領域模型。請看下面這個 JavaBean:

public class User {
  private int id;
  private String username;
  private String hashedPassword;

  public int getId() {
    return id;
  }
  public void setId(int id) {
    this.id = id;
  }
  public String getUsername() {
    return username;
  }
  public void setUsername(String username) {
    this.username = username;
  }
  public String getHashedPassword() {
    return hashedPassword;
  }
  public void setHashedPassword(String hashedPassword) {
    this.hashedPassword = hashedPassword;
  }
}

對應的映射關系是這樣的:

<select id="selectUsers" resultType="cn.mybatis.model.User">
  select id, username, hashedPassword
  from t_users
  where id = #{id}
</select>

這些情況下,MyBatis 會在幕后自動創建一個 ResultMap,再基于屬性名來映射列到 JavaBean 的屬性上。

如果列名和屬性名沒有精確匹配,可以使用 resultMap 元素來幫忙:

<resultMap id="userResultMap" type="User">
  <id property="id" column="user_id" />
  <result property="username" column="user_name"/>
  <result property="password" column="hashed_password"/>
</resultMap>

而在引用它的語句中使用 resultMap 屬性就行了(注意:我們去掉了 resultType 屬性)。比如:

<select id="selectUsers" resultMap="userResultMap">
  select user_id, user_name, hashed_password
  from t_users
  where id = #{id}
</select>

標簽: none

[站長推薦]-[系統化學習]


[網站公告]-[抵制某公眾號與某知識星球]


添加新評論

久久99国产只有精品