亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Mybatis實現(xiàn)插入數(shù)據(jù)后返回主鍵過程解析

 更新時間:2020年06月02日 11:00:00   作者:_dafeng  
這篇文章主要介紹了Mybatis實現(xiàn)插入數(shù)據(jù)后返回主鍵過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

添加記錄后獲取主鍵ID,這是一個很常見的需求,特別是在一次前端調用中需要插入多個表的場景。

除了添加單條記錄時獲取主鍵值,有時候可能需要獲取批量添加記錄時各記錄的主鍵值,MyBatis從3.3.1版本開始支持批量添加記錄并返回各記錄主鍵字段值。

一、獲取新添加記錄主鍵字段值

注意: 在MyBatis中添加操作返回的是記錄數(shù)并非記錄主鍵id。

如果需要獲取新添加記錄的主鍵值,需要在執(zhí)行添加操作之后,直接讀取Java對象的主鍵屬性。

Integer rows = sqlSession.getMapper(UserMapper.class).insertUser(user);
System.out.println("rows = " + rows); // 添加操作返回記錄數(shù)
System.out.println("id = " + user.getId()); // 執(zhí)行添加操作之后通過Java對象獲取主鍵屬性值

二、在映射器中配置獲取記錄主鍵值

1.xml映射器

在定義xml映射器時設置屬性useGeneratedKeys值為true,并分別指定屬性keyProperty和keyColumn為對應的數(shù)據(jù)庫記錄主鍵字段與Java對象的主鍵屬性。

1.1 插入單條記錄

<mapper namespace="com.dafeng.dao.mapper">
	<!-- 插入數(shù)據(jù):返回記錄主鍵id值 -->
	<insert id="insertUser" parameterType="com.dafeng.model.User" useGeneratedKeys="true" keyProperty="id" keyColumn="id" >
	  insert into user(name,age,create_time,update_time) values(#{name},#{age},now(),now())
	</insert>
</mapper>

1.2 插入多條記錄

<!-- 批量添加數(shù)據(jù),并返回主鍵字段 -->
<insert id="insertBatchUser" useGeneratedKeys="true" keyProperty="id">
  INSERT INTO user(name,age,create_time,update_time) VALUES
    <foreach collection="list" separator="," item="u">
    (#{u.name},#{u.age},now(),now())
    </foreach>
</insert>

2.接口映射器

在接口映射器中通過注解@Options分別設置參數(shù)useGeneratedKeys,keyProperty,keyColumn值

2.1 插入單條記錄

// 返回主鍵字段id值
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
@Insert("insert into user(name,age,create_time,update_time) values(#{name},#{age},now(),now())")
Integer insertUser(User user);

2.2 插入多條記錄

如果希望執(zhí)行批量添加并返回各記錄主鍵字段值,只能在xml映射器中實現(xiàn),在接口映射器中無法做到。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 詳解Java如何給按鈕添加監(jiān)視器

    詳解Java如何給按鈕添加監(jiān)視器

    這篇文章主要介紹了詳解Java如何給按鈕添加監(jiān)視器,使用匿名對象、實現(xiàn)接口、實現(xiàn)類、Lambda表達式、注解等,需要的朋友可以參考下
    2023-04-04
  • Spring 源碼解析CommonAnnotationBeanPostProcessor

    Spring 源碼解析CommonAnnotationBeanPostProcessor

    這篇文章主要為大家介紹了Spring 源碼解析CommonAnnotationBeanPostProcessor示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-10-10
  • SpringBoot在Controller層接收參數(shù)的n種姿勢(超詳細)

    SpringBoot在Controller層接收參數(shù)的n種姿勢(超詳細)

    這篇文章主要介紹了SpringBoot在Controller層接收參數(shù)的常用方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-01-01
  • java中線程的sleep()方法和yield()方法的區(qū)別

    java中線程的sleep()方法和yield()方法的區(qū)別

    本文主要介紹了java中線程的sleep()方法和yield()方法的區(qū)別,Thread類的sleep()方法使線程休眠指定時間,不釋放鎖,而yield()提示調度器當前線程愿意讓出CPU資源,不保證立即切換線程,感興趣的可以了解一下
    2024-10-10
  • SpringBoot框架RESTful接口設置跨域允許

    SpringBoot框架RESTful接口設置跨域允許

    這篇文章主要為大家詳細介紹了SpringBoot框架RESTful接口設置跨域允許,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • Java圖片處理之獲取gif圖一幀圖片的兩種方法

    Java圖片處理之獲取gif圖一幀圖片的兩種方法

    這篇文章主要給大家介紹了關于Java圖片處理之獲取gif圖一幀圖片的兩種方法,分別是利用Java原生代碼和使用im4java調用ImageMagick來實現(xiàn),兩種方法都給出來示例代碼供大家參考學習,需要的朋友們下面來一起看看吧。
    2017-10-10
  • 基于TCP通信丟包原因總結(推薦)

    基于TCP通信丟包原因總結(推薦)

    下面小編就為大家?guī)硪黄赥CP通信丟包原因總結(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Mybatis返回結果封裝map過程解析

    Mybatis返回結果封裝map過程解析

    這篇文章主要介紹了Mybatis返回結果封裝map過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-09-09
  • m1 Mac設置多jdk版本并動態(tài)切換的實現(xiàn)

    m1 Mac設置多jdk版本并動態(tài)切換的實現(xiàn)

    本文主要介紹 Mac 下如何安裝 JDK 并且多版本如何切換,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • SpringBoot測試之高級配置方式

    SpringBoot測試之高級配置方式

    這篇文章主要介紹了SpringBoot測試之高級配置方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-04-04

最新評論