分析如下for迴圈的寫法不同之處
方式1:
fjList.forEach(examQuestionattachment -> {
ExamQuestionAttachment examQuestionAttachment = new ExamQuestionAttachment();
examQuestionAttachment.setQuestionSmallId(examQuestionSmall.getId());
examQuestionAttachment .setType(examQuestionattachment.getAttachmenttype()); // 型別
examQuestionAttachment.setPath(copyUrl + examQuestionattachment.getPath()); // 地址
examQuestionAttachmentMapper.insertSelective(examQuestionAttachment);
});
方式2:
ExamQuestionAttachment examQuestionAttachment = new ExamQuestionAttachment();
examQuestionAttachment.setQuestionSmallId(examQuestionSmall.getId());
fjList.forEach(examQuestionattachment -> {
examQuestionAttachment.setType(examQuestionattachment.getAttachmenttype()); // 型別
examQuestionAttachment.setPath(copyUrl + examQuestionattachment.getPath()); // 地址
examQuestionAttachmentMapper.insertSelective(examQuestionAttachment);
});
某次任務中,採用的是方式2的迴圈方式,結果程式報錯,提示是主鍵重複。記錄分析過程如下:
- 理論分析,既然是主鍵重複,說明迴圈開始,要不然不可能會重複。
- 主鍵重複,說明第二次插入的物件的id和第一次的相同,也就是examQuestionAttachment這個物件在第一次插入資料後得到了一個id,並且在迴圈的時候,到了第二次插入的物件中。
- mybatis中涉及到資料插入返回主鍵的配置是:configuration下的use-generated-keys,當use-generated-keys=true時,資料插入後會得到一個id,並返回到插入的物件當中,所有我們來繼續驗證。
- use-generated-keys=true在方式2中會報錯,so 設定use-generated-keys=false,然後重新啟動專案,執行之前程式,資料插入正常。
- 方式1不用多說,在for迴圈中new新物件,不管id返回與否,資料插入都沒有問題。
總結:use-generated-keys=true時要注意new物件的操作是否在for迴圈中,確保id不重複。
相關推薦
分析如下for迴圈的寫法不同之處
方式1:fjList.forEach(examQuestionattachment -> { ExamQuestionAttachment examQuestionAt
JS 陣列中有 undefined 值,用 for 迴圈和 for…in 迴圈遍歷的不同之處
先說結論:在陣列遍歷時一般最好使用for迴圈遍歷 var arr=new Array(); arr[0]="P90"; arr[3]="AWM"; arr[5]="AK47"; console.log("//for 迴圈遍歷"); for(let i=0;i<arr
分析決策樹算法和邏輯回歸算法的不同之處
人工智能 機器學習 首先我們導入一組airplan.xlsx數據。數據表中的age表示年齡、FLIGHT_COUNT表示飛行次數、BASE_POINTS_SUM表示飛行裏程、runoff_flag表示流失與否,定義1為正樣本,代表已流失。 現在讓我們來看一下最後的效果:可以看到決策樹算法和邏輯回歸算法
pyQt5 使用qtdesigner生成程式碼後的程式碼分析 和中文幫助文件程式碼不同之處
1,生成程式碼後加入幾行事件處理機制,點選按鈕 出現hello # -*- coding: utf-8 -*- # Form implementation generated from reading ui file 'untitled.ui' # # Created
for迴圈與while迴圈的區別之處
在編寫程式時,如果你需要根據一些需求進行多次判斷或選擇,這時候肯定會用到迴圈,但是迴圈的方法也不是隻有一種,常用的兩種是for迴圈和while迴圈,兩種迴圈的應用場景也是有所不同的,具體如下: 從應用場景方面考慮: for迴圈適用於已知迴圈次數,while迴圈適用於未知迴圈次數。 那麼在
iOS6和iOS7處理push不同之處,解決反復push,-(void) application: didReceiveRemoteNotification: fetchCompletionHandl
前臺 啟動圖 nstat and bsp pro ica 應該 正文 如果讀者已經知道push的基本知識,本文僅僅是解決一些適配,兼容問題。如果對push 不甚了解,參考以下的文章 1.【iOS push全方位解析】(一) push的概述 2.【iOS push
Appcan、apicloud、HBuilder 不同之處解析
硬件加速 時間 js框架 一個 免費 打開 htm c++ sign 來源:http://www.mamicode.com/info-detail-1129829.html 現在Hybrid app是一中非常火熱的開發模式,在國內對應的開發工具也亂象叢生,有WeX5、cr
人工智能與機器學習的不同之處
沒有 機器學習 決定 深度學習 支持向量 傳統 模擬 性能 處理 人工智能早已不是一個新名詞,它的發展歷史已經有幾十年。從80年代早期開始,當時計算機科學家設計出可以學習和模仿人類行為的算法。在學習方面,最重要的算法是神經網絡,但由於模型過於強大,沒有足夠的數據支持,導致不
JavaScript-//FOR/IN循環。當使用for/in循環遍歷關聯數組時,就可以清晰地體會到for/in的強大之處。
get console turn 股票 toc asc ava cti val <script> //FOR/IN循環。當使用for/in循環遍歷關聯數組時,就可以清晰地體會到for/in的強大之處。 function getvalue(portfol
python中的list和array的不同之處 及轉換
索引查找 tex style best col 移除 b- 索引 nump python中的list和array的不同之處list是列表,可以通過索引查找數值,但是不能對整個列表進行數值運算In [96]: b=[1,2]In [97]: b[1]Out[97]: 2In
centos7與centos6常用命令不同之處匯總
centos 7(1)文件系統[CentOS6] ext4[CentOS7] xfs(2)內核版本[CentOS6] 2.6.x-x[CentOS7] 3.10.x-x(3)防火墻[CentOS6] iptables[CentOS7] firewalld(4)默認數據庫[CentOS6] MySQL[Cent
用python比較兩個文件中內容的不同之處, 並輸出行號和內容.
exist file diff pre ffline += == list cmp 代碼部分: ‘‘‘cmpfile.py - 比對兩個文件, 如果有不同之處, 打印內容和行號‘‘‘ import os class cmpFile: def __init__(
try except與try finally不同之處
RR 數字 ext con 失敗 eight err strong size try except與try finally不同之處 try//嘗試執行 {SomeCode} except//出錯的時候執行, Except有特定的錯誤類型 {Som
共享權限和NTFS權限的不同之處
控制 RM 分區 了解 不可 get 共享 pdf 所有 我們在對磁盤進行管理時都需要一定的權限,大家一般性都會聽說過共享權限和NTFS權限,那麽這兩者有什麽區別呢,下面就和大家一起介紹一下。 一、共享權限 共享權限有三種:完全控制、更改、讀取 任務:了解共享權限 步驟:
HTTP和HTTPS協議有什麽不同之處
不同之處 style AR 通過 詳細 transfer pos 萬維網 log 定義: HTTP(hypertext transfer protocol)是超文本傳輸協議,是一種用來詳細規定了瀏覽器和萬維網服務器之間互相通信的規則,通過因特網傳送萬維網文檔的
棧和堆有什麽不同之處
font 存儲 text sta 程序員 align 垃圾回收 order pos 1、存儲對象不同:棧存儲的是局部變量,堆存儲的是實體。 2、釋放機制不同:棧的裏面存儲的局部變量生命周期結束,則就釋放掉局部變量;而堆的話,則是通過垃圾回收機制去釋放掉實體。 3、更新速度不
科普!小馬嘟嘟屬於幾線品牌 和其他童裝的不同之處
盡心 通過 顏色 出現 體重 小馬 截取 產品研發 負責人 家長都希望自己的孩子在各個方面都能夠出彩,於是給予自己的 孩子更好的東西,在童裝方面更能引起消費共鳴。因而一些品牌紛紛抓住家長們這一心理,任意提高其產品的價格,而家長們也無力改變。那麽,童裝市場上是否還有好的
js對象屬性 通過點(.) 和 方括號([]) 的不同之處
元素 標識符 ava index 寫法 () ole var person // js對象屬性 通過點(.) 和 方括號([]) 的不同之處 // 1、點操作符: 靜態的。右側必須是一個以屬性名稱命名的簡單標識符。屬性名用一個標識符來表示。標識符必
網絡分流器和移動互聯網分流器的不同之處詳解
匹配 服務器 動作 pos 管控 a20 轉換成 特征 同時 網絡分流器通常用於網絡***檢測系統 (IDS),網絡探測和分析。網絡分流器的分流模式,是將被監控的UTP鏈路(非屏蔽鏈路)用TAP分流設備一分為二,分流出來的數據接入采集接口,為互聯網信息安全監控系統采集數據。
淺析電阻與TVS管的不同之處
blank 最大 bsp mage 承擔 com 抗變 tar 低電壓 電阻是一款具有非線性伏安特質的電阻器件,多數用在在電路承擔過壓時進行電壓電路保護,吸取過剩的電流來保護敏感器件。通常稱為VDR。電阻器的電阻體原料是半導體,因此它是半導體電阻器的其中一款。