我正在嘗試讀取具有這些欄位和值的 csv 檔案:
// "reference" "choice", "startDate"
// "123", "3", "06.03.1987"
// "Set 1", "1", "11.06.1999"
// "Set 2", "2", "05.07.2002"
// "Set 3", "", "05.07.2002"
該reference欄位是唯一的,并且該choice欄位可能為空。在這個場景中,對于我的物體定義:
1.我應該使用String該choice欄位,因為它在 csv 檔案中可能為 null(空字串)?
2.我應該使reference欄位PK或者即使它是唯一的,我認為最好使用一個Longid欄位并@Column(unique = true)為該reference欄位添加。那正確嗎?
3.對于該startDate領域,我認為我應該使用LocalDate, 而不是Date因為它已被棄用。真的嗎?
uj5u.com熱心網友回復:
1. 我應該使用字串作為選擇欄位,因為它在 csv 檔案中可能為空(空字串)?
您可以將 csv 值決議為String,并Integer.parseInt()在寫入資料庫之前使用(以便您寫入有效數字,或者null當 csv 值不可決議時)。
2.我應該將參考欄位PK還是即使它是唯一的,我認為最好使用Long id欄位并為參考欄位添加@Column(unique = true)。那正確嗎?
關于如何選擇主鍵、唯一性是否有意義、如何處理唯一值的重復項(新添加失敗?添加相關行?更新現有行、覆寫現有值?),有許多考慮因素。你可以就這個問題發表一篇完整的文章。
3. 對于 startDate 欄位,我認為我應該使用 LocalDate,而不是 Date,因為它已被棄用。真的嗎?
當然,java.time.LocalDate會是一個不錯的選擇。
有點迂腐,但是:各種方法都java.util.Date()被棄用了,但Date它本身并沒有被棄用。但總的來說,java.time包中有更好的選擇(如LocalDate)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/496081.html
下一篇:TimeoutException:使用CompositeServerSelector選擇服務器30000毫秒后發生超時
