Go 數(shù)據(jù)庫(kù)操作異常處理
第一種寫法
第二種寫法
上述兩種寫法說明:
兩種寫法都沒啥問題,第一種寫法, 如果只插入一條數(shù)據(jù),可以使用第一種寫法簡(jiǎn)單;第二種寫法可以拿到執(zhí)行的 *DB ,方便后續(xù)的 DB 操作
說明:
update 方法將返回執(zhí)行完之后的 *DB, 需要通過指針對(duì)象才能獲取正確的 RowAffected。
事務(wù)的提交也可能會(huì)有 error, 要判斷是否正確 commit
需要判斷 tx.Error,因?yàn)槭聞?wù)的提交可能會(huì)有 error
其實(shí)要注意的是,沒查詢到結(jié)果,也會(huì)返回一個(gè)Error
gorm 的ErrRecordNotFound也好理解,假設(shè)根據(jù)身份證號(hào)查詢公民信息,如果是一個(gè)無(wú)效的身份證ID,那必然無(wú)法查詢到結(jié)果, 其實(shí)就是查詢不到結(jié)果,會(huì)返回一個(gè)錯(cuò)誤。
當(dāng)然 GORM 提供了一個(gè)處理 RecordNotFound 錯(cuò)誤的快捷方式,如果發(fā)生了多個(gè)錯(cuò)誤,它將檢查每個(gè)錯(cuò)誤,如果它們中的任何一個(gè)是RecordNotFound 錯(cuò)誤。
下一篇:IIS數(shù)據(jù)庫(kù)連接出錯(cuò),請(qǐng)檢查連接字串