中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mybatis中實體類屬性與數據列表間映射方法介紹

發布時間:2020-09-25 16:06:23 來源:腳本之家 閱讀:228 作者:lmy86263 欄目:編程語言

Mybatis不像Hibernate中那么自動化,通過@Column注解或者直接使用實體類的屬性名作為數據列名,而是需要自己指定實體類屬性和

數據表中列名之間的映射關系,這一點讓用慣了Hibernate的人很不習慣,所幸經過探索找到了建立映射關系的三種辦法,其中總也有比較 簡單的。

首先先定義一個實體類,如下:

public class User implements Serializable {
  private Integer userId;
  private String userName;
  ......
}

1. 通過XML映射文件中的resultMap

這種方式是最常見的,類似如下:

<mapper namespace="data.UserMapper">
  <resultMap type="data.User" id="userResultMap">
    <!-- 用id屬性來映射主鍵字段 -->
    <id property="id" column="user_id"/>
    <!-- 用result屬性來映射非主鍵字段 -->
    <result property="userName" column="user_name"/>
  </resultMap>
</mapper>

通過里面的id標簽和result標簽來建立映射關系,由property和column分別指定實體類屬性和數據表的列名。

2. 通過注解@Results和@Result

這兩個注解是與XML文件中的標簽相對應的:

@Results對應resultMap
@Result對應result

這兩個注解是應用在方法的級別上的,也就是在mapper方法上,如下:

@Select("select * from t_user where user_name = #{userName}")
@Results(
    @Result(property = "userId", column = "user_id"),
    @Result(property = "userName", column = "user_name")
)
User getUserByName(@Param("userName") String userName);

缺點:

由于注解是針對方法的,對于Mapper中的每個操作數據庫的方法都必須有相同的注解完成映射關系的建立,導致很多的配置是重復的;

如果要避免配置重復的問題,可以采用在XML配置文件中配置這個resultMap,然后再@Result中通過id屬性引用這個resultMap,

但是這樣感覺很麻煩(由于使用了兩種配置方式),不如直接使用基于XML的resultMap配置方式;

3. 通過屬性配置完成映射

使用者最陌生的是通過配置屬性來完成映射,Mybatis給我們提供了一種映射方式,如果屬性的命名是遵從駝峰命名法的,數據列名遵從下劃線命名,

那么可以使用這種方式,類似如下:

userName對應user_name;
userId對應user_id;

配置代碼如下:

SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
Configuration configuration = new Configuration();
configuration.setMapUnderscoreToCamelCase(true);
sqlSessionFactoryBean.setConfiguration(configuration);

4. 通過使用在SQL語句中定義別名完成映射

這種方式最直接,直接在SQL語句中建立別名來完成映射,如下:

@Select("select user_name as userName, user_id as userId from t_user where user_name = #{userName}")
User getUserByName(@Param("userName") String userName);

總結

以上就是本文關于Mybatis中實體類屬性與數據列表間映射方法介紹的全部內容,希望對大家有所幫助。感興趣的朋友可以繼續參閱本站:Hibernate實現悲觀鎖和樂觀鎖代碼介紹、Hibernate核心思想與接口簡介等。下面介紹本站幾款有趣的游戲,學習工作之余放松下心情也是很必要的。也希望大家多多支持億速云網站!

海濱消消樂app for android v1.13 安卓版

https://www.jb51.net/game/578587.html

一起來飛車app for android v1.5.1 安卓版

https://www.jb51.net/game/578688.html

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

同德县| 南涧| 砚山县| 西乌珠穆沁旗| 湘西| 康定县| 奉节县| 揭阳市| 霍山县| 乌兰察布市| 洛扎县| 南靖县| 遵化市| 定远县| 九寨沟县| 嵊州市| 白玉县| 历史| 新巴尔虎左旗| 都兰县| 桃园市| 泉州市| 枣阳市| 西安市| 华宁县| 区。| 个旧市| 峨眉山市| 江北区| 三台县| 从化市| 青阳县| 漳州市| 略阳县| 郓城县| 莱西市| 方正县| 扎鲁特旗| 邢台县| 应城市| 上蔡县|