-1
我正在使用準備好的語句批量插入記錄。 Iam迭代一個包含值和它們的數據類型不同的列表。其中一種數據類型是BigDecimal,當我嘗試設置調用準備語句時,它引發空指針異常。如何將列表對象轉換爲預編譯語句中的bigdecimal?
我的代碼
int count = 1;
for (int j = 0; j < list.size(); j++) {
if(list.get(j) instanceof Timestamp) {
ps.setTimestamp(count, (Timestamp) list.get(j));
} else if(list.get(j) instanceof java.lang.Character) {
ps.setString(count, String.valueOf(list.get(j)));
}
else if(list.get(j) instanceof java.math.BigDecimal) {
ps.setBigDecimal(count, (java.math.BigDecimal)list.get(j));
} else {
ps.setObject(count, list.get(j));
}
count++;
}
我嘗試2種方式轉換,鑄造對象,並試圖創建類型的新對象的BigDecimal
ps.setBigDecimal(count, new BigDecimal(list.get(j).toString));
兩個DONOT解決我的問題。它拋出空指針異常。
幫助表示讚賞。
感謝
我們可以看到您的堆棧跟蹤而這潑灑在精確的線? –
爲什麼你需要「instanceof java.math.BigDecimal」分支?如果列表中已經有BigDecimal,爲什麼不使用ps.setObject(count,list.get(j))? –
感謝您的回覆,問題是我正在關閉我的preparedstatement並將prepare語句設置爲null,在try循環內的try catch塊內部。問題已解決。感謝Brian和Dan寶貴的時間。 –