最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mybatis中實(shí)體類屬性與數(shù)據(jù)列表間映射方法介紹

 更新時(shí)間:2017年10月19日 09:33:48   作者:lmy86263  
這篇文章主要介紹了Mybatis中實(shí)體類屬性與數(shù)據(jù)列表間映射方法介紹,一共四中方法,供大家參考。

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

數(shù)據(jù)表中列名之間的映射關(guān)系,這一點(diǎn)讓用慣了Hibernate的人很不習(xí)慣,所幸經(jīng)過探索找到了建立映射關(guān)系的三種辦法,其中總也有比較 簡(jiǎn)單的。

首先先定義一個(gè)實(shí)體類,如下:

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標(biāo)簽和result標(biāo)簽來建立映射關(guān)系,由property和column分別指定實(shí)體類屬性和數(shù)據(jù)表的列名。

2. 通過注解@Results和@Result

這兩個(gè)注解是與XML文件中的標(biāo)簽相對(duì)應(yīng)的:

@Results對(duì)應(yīng)resultMap
@Result對(duì)應(yīng)result

這兩個(gè)注解是應(yīng)用在方法的級(jí)別上的,也就是在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);

缺點(diǎn):

由于注解是針對(duì)方法的,對(duì)于Mapper中的每個(gè)操作數(shù)據(jù)庫(kù)的方法都必須有相同的注解完成映射關(guān)系的建立,導(dǎo)致很多的配置是重復(fù)的;

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

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

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

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

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

userName對(duì)應(yīng)user_name;
userId對(duì)應(yīng)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);

總結(jié)

以上就是本文關(guān)于Mybatis中實(shí)體類屬性與數(shù)據(jù)列表間映射方法介紹的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站:Hibernate實(shí)現(xiàn)悲觀鎖和樂觀鎖代碼介紹、Hibernate核心思想與接口簡(jiǎn)介等。下面介紹本站幾款有趣的游戲,學(xué)習(xí)工作之余放松下心情也是很必要的。也希望大家多多支持腳本之家網(wǎng)站!

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

http://m.fzitv.net/game/578587.html

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

http://m.fzitv.net/game/578688.html

相關(guān)文章

  • Go Java算法重復(fù)的DNA序列詳解

    Go Java算法重復(fù)的DNA序列詳解

    這篇文章主要為大家介紹了Go Java算法之重復(fù)的DNA序列的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • 一文搞懂Java MD5算法的原理及實(shí)現(xiàn)

    一文搞懂Java MD5算法的原理及實(shí)現(xiàn)

    MD5信息摘要算法,一種被廣泛使用的密碼散列函數(shù),可以產(chǎn)生出一個(gè)128位(16字節(jié))的散列值(hash value),用于確保信息傳輸完整一致。本文將詳解MD5算法的原理及實(shí)現(xiàn),感興趣的可以了解一下
    2022-06-06
  • java中如何反射獲取一個(gè)類

    java中如何反射獲取一個(gè)類

    大家說說對(duì)java反射的理解,使用反射如何獲取一個(gè)類,下面小編給大家整理一些資料,關(guān)于java中如何反射獲取一個(gè)類,有需要的朋友可以參考下
    2015-08-08
  • Spring Boot 整合 Mockito提升Java單元測(cè)試的高效實(shí)踐案例

    Spring Boot 整合 Mockito提升Java單元測(cè)試的高效實(shí)踐案例

    Mockito與Spring Boot的整合為Java開發(fā)者提供了一套完整的解決方案,使得單元測(cè)試更為精準(zhǔn)、高效,從而確保了代碼質(zhì)量、降低了維護(hù)成本,并促進(jìn)了項(xiàng)目的持續(xù)集成與交付,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • 用Java將字符串的首字母轉(zhuǎn)換大小寫

    用Java將字符串的首字母轉(zhuǎn)換大小寫

    在項(xiàng)目開發(fā)的時(shí)候會(huì)需要統(tǒng)一字符串的格式,比如首字母要求統(tǒng)一大寫或小寫,那用Java如何實(shí)現(xiàn)這一功能?下面一起來學(xué)習(xí)學(xué)習(xí)。
    2016-08-08
  • Springboot整合SpringSecurity的完整案例詳解

    Springboot整合SpringSecurity的完整案例詳解

    Spring Security是基于Spring生態(tài)圈的,用于提供安全訪問控制解決方案的框架,Spring Security登錄認(rèn)證主要涉及兩個(gè)重要的接口 UserDetailService和UserDetails接口,本文對(duì)Springboot整合SpringSecurity過程給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2024-01-01
  • SpringBoot后端進(jìn)行數(shù)據(jù)校驗(yàn)JSR303的使用詳解

    SpringBoot后端進(jìn)行數(shù)據(jù)校驗(yàn)JSR303的使用詳解

    這篇文章主要介紹了SpringBoot后端進(jìn)行數(shù)據(jù)校驗(yàn)JSR303的使用詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-03-03
  • Spring IOC原理詳解

    Spring IOC原理詳解

    這篇文章主要介紹了Spring IOC原理詳解,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • Java Spring5學(xué)習(xí)之JdbcTemplate詳解

    Java Spring5學(xué)習(xí)之JdbcTemplate詳解

    這篇文章主要介紹了Java Spring5學(xué)習(xí)之JdbcTemplate詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)java的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • SpringBoot如何用java生成靜態(tài)html

    SpringBoot如何用java生成靜態(tài)html

    這篇文章主要介紹了SpringBoot如何用java生成靜態(tài)html,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,需要的朋友可以參考一下
    2022-06-06

最新評(píng)論

常州市| 临清市| 德钦县| 西平县| 陇西县| 兴安盟| 合阳县| 朝阳区| 高邑县| 南汇区| 金门县| 漳平市| 岱山县| 泰安市| 巫溪县| 恩施市| 衡东县| 建瓯市| 塔城市| 尼木县| 二连浩特市| 资阳市| 团风县| 玉屏| 台江县| 芒康县| 长治县| 杨浦区| 斗六市| 县级市| 保山市| 前郭尔| 尖扎县| 确山县| 石屏县| 济源市| 凭祥市| 定远县| 金塔县| 宝兴县| 商南县|