代碼在插入資料庫的時候,try catch了一個DuplicateKeyException 例外,同事建議先查一下資料庫先
uj5u.com熱心網友回復:
這需要看實際的業務場景吧,主要看你插入資料的業務是怎么來的,如果是前端匯入,是不是應該先校驗資料?如果其他方式匯入,是不是可以考慮重復的記錄跳過或者更新?因為有些業務不能拋例外直接讓業務中斷,比如只會請求一次,直接拋例外就會導致正常的資料會丟失。所以代價大不大還是看業務,技術方案都是為業務服務的,單純討論技術方案有什么意義。uj5u.com熱心網友回復:
第一查詢肯定是很快的 沒有相同的key 再進行插入 有相同的key就再生成一個新的key。 如果你直接try catch 沒有形同key的時候你的操作是沒有問題的。那么如果有相同的key出現 你在進行輸入插入的時候你怎么做彌補。 還有就是如果出現事務嵌套你把例外給捕獲了 別人在插入時候呼叫了你的插入介面 他的沒有例外 你的有錯誤你把例外捕獲了 那也是事務成功 別人會認為你的是成功的uj5u.com熱心網友回復:
不是拋例外的代碼大,而是重復插入,應該是最后的兜底手段,盡量避免依賴資料庫的能力,在代碼中處理掉。
如果你的資料庫設計,不支持唯一索引怎么辦?
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/34653.html
標籤:Java SE
上一篇:業務涉及三個以上表怎么解決
下一篇:idea問題:Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5
