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

mybatis實現批量插入并返回主鍵(xml和注解兩種方法)

 更新時間:2021年12月03日 15:07:54   作者:yjclsx  
這篇文章主要介紹了mybatis實現批量插入并返回主鍵(xml和注解兩種方法),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

mybatis批量插入并返回主鍵(xml和注解兩種方法)

mybatis批量插入

在mysql數據庫中支持批量插入,所以只要配置useGeneratedKeys和keyProperty就可以批量插入并返回主鍵了。

比如有個表camera,里面有cameraNo,chanIndex,cameraName這三個字段,其中cameraNo是自增主鍵。

下面是批量插入的Dao層接口:

void batchInsertCameras(@Param("list") List<Camera> cameras);

xml形式

<insert id="batchInsertCameras" useGeneratedKeys="true" keyProperty="cameraNo">
    insert into camera (chanIndex,cameraName)
    values
    <foreach collection="list" item="c" separator=",">
        (#{c.chanIndex},#{c.cameraName})
    </foreach>
</insert>

注解形式

@Insert("<script>insert into camera (chanIndex,cameraName) values " +
        "<foreach collection='list' item='c' separator=','>(#{c.chanIndex},#{c.cameraName})</foreach></script>")
@Options(useGeneratedKeys = true, keyProperty = "cameraNo")
void batchInsertCameras(@Param("list") List<Camera> cameras);

注意:@Param里必須寫成list, foreach的collection也必須寫成list,否則批量插入后會報錯說找不到"cameraNo"字段,而無法返回主鍵。

通過上面的xml形式或者注解形式的配置(我這是spring boot的項目,引入的mybatis-spring-boot-starter,采用的是注解形式),就可以批量插入并返回主鍵了,主鍵會被設置到Camera對象的cameraNo字段中。

cameraMapper.batchInsertCameras(cameras);
for(Camera camera : cameras){
    System.out.println(camera.getCameraNo());
}

執(zhí)行批量插入時,需確保至少有一條待插入的記錄,否則會導致sql有誤而報錯。

mybatis批量插入并返回主鍵筆記

mapper中的代碼

int insertBatchUserReturnId(List<User> users);

也可以在形參前面加上@Param("xxxx")

xml中的代碼,collection必須填list類型

<insert id="insertBatchUserReturnId" keyProperty="userId" useGeneratedKeys="true">
 insert into message (user_id, user_name, user_type, user_passwd, user_phone,user_pic,user_address)
 values
 <foreach collection="list" item="item" open="(" close=")" separator=",">
  #{item.userId,jdbcType=INTEGER}, #{item.userName,jdbcType=VARCHAR}, #{item.userType,jdbcType=TINYINT}, 
  #{item.userPasswd,jdbcType=VARCHAR}, #{item.userPhone,jdbcType=VARCHAR},
  #{item.userPic,jdbcType=VARCHAR},#{item.userAddress,jdbcType=VARCHAR}
 </foreach>
</insert>

執(zhí)行完這條語句之后,原來的users就會自動帶上主鍵userId。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java中的深拷貝和淺拷貝介紹

    Java中的深拷貝和淺拷貝介紹

    對象拷貝(Object Copy)就是將一個對象的屬性拷貝到另一個有著相同類類型的對象中去。在程序中拷貝對象是很常見的,主要是為了在新的上下文環(huán)境中復用對象的部分或全部 數據。Java中有三種類型的對象拷貝:淺拷貝(Shallow Copy)、深拷貝(Deep Copy)、延遲拷貝(Lazy Copy)
    2014-03-03
  • 解決創(chuàng)建springboot后啟動報錯:Failed?to?bind?properties?under‘spring.datasource‘

    解決創(chuàng)建springboot后啟動報錯:Failed?to?bind?properties?under‘spri

    在Spring?Boot項目中,application.properties和application.yml是用于配置參數的兩種文件格式,properties格式簡潔但不支持層次結構,而yml格式支持層次性,可讀性更好,在yml文件中,要注意細節(jié),比如冒號后面需要空格
    2024-10-10
  • Spring Boot Web應用程序配置詳解

    Spring Boot Web應用程序配置詳解

    這篇文章主要介紹了Spring Boot Web應用程序配置詳解,本文中將介紹一些Web應用程序最常用的配置,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05
  • Java自學書籍Top 10

    Java自學書籍Top 10

    這篇文章主要為大家推薦了Java書籍Top 10,是由Java Inside推薦的十本不錯的Java書籍,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Spring Boot啟動過程完全解析(一)

    Spring Boot啟動過程完全解析(一)

    這篇文章主要介紹了Spring Boot啟動過程完全解析(一),需要的朋友可以參考下
    2017-04-04
  • IDEA插件指南之Mybatis?log插件安裝及使用方法

    IDEA插件指南之Mybatis?log插件安裝及使用方法

    這篇文章主要給大家介紹了關于IDEA插件指南之Mybatis?log插件安裝及使用的相關資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-02-02
  • springboot實現自動郵件發(fā)送任務詳解

    springboot實現自動郵件發(fā)送任務詳解

    這篇文章主要介紹了Springboot中的郵件任務,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2022-04-04
  • Java項目如何打包成Jar的實現步驟

    Java項目如何打包成Jar的實現步驟

    一般情況下我們都是使用Java項目直接部署發(fā)布,有時需要我們將寫好的項目打成jar包,方便后期調用,本文主要介紹了Java項目如何打包成Jar,感興趣的可以了解一下
    2023-11-11
  • SpringMVC通過RESTful結構實現頁面數據交互

    SpringMVC通過RESTful結構實現頁面數據交互

    RESTFUL是一種網絡應用程序的設計風格和開發(fā)方式,基于HTTP,可以使用XML格式定義或JSON格式定義。RESTFUL適用于移動互聯網廠商作為業(yè)務接口的場景,實現第三方OTT調用移動網絡資源的功能,動作類型為新增、變更、刪除所調用資源
    2022-08-08
  • Rabbitmq延遲隊列實現定時任務的方法

    Rabbitmq延遲隊列實現定時任務的方法

    這篇文章主要介紹了Rabbitmq延遲隊列實現定時任務,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05

最新評論

南开区| 泰安市| 杂多县| 泰州市| 江西省| 盱眙县| 长春市| 永州市| 祁门县| 乌鲁木齐市| 遂昌县| 伊春市| 福贡县| 阜城县| 甘肃省| 龙口市| 盐边县| 龙井市| 巴东县| 兴和县| 朝阳县| 宜良县| 太仓市| 象州县| 榆中县| 蓝田县| 乐东| 清河县| 蕲春县| 揭东县| 蓬安县| 喀喇沁旗| 镇赉县| 铁力市| 张北县| 大宁县| 抚顺县| 霞浦县| 浦北县| 青田县| 丹江口市|