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