我所遇到下列代碼我覺得這是在做錯誤的事情:的PreparedStatement了setString(...)所有,即使造成相應的數據類型爲整數
(注意,這是JDK 1.4.2因此列表中沒有鍵入)
StringBuffer queryBuffer = new StringBuffer();
ArrayList temp = new ArrayList();
...
queryBuffer.append("and sb.POSTCODE = ? ");
temp.add(postcode);
...
conn = ConnectionManager.getConnection();
pstmt = conn.prepareStatement(queryBuffer.toString());
這就是我所關心的:
for(int i=0; i<temp.size(); i++) {
log.debug("setString("+ (i+1) + "," + (String)temp.get(i) + ")");
pstmt.setString(i+1, (String)temp.get(i));
}
但我必須指出的是,一些在數據庫中的相應數據類型(場)都是整數,和日期,這會好嗎?
我不認爲它是好的。似乎這是依賴於隱式轉換,而這往往會導致悲痛。 – Glenn
我猜'temp'是一個'List' - 是一般的輸入嗎?請顯示其聲明。 –
@Paul Bellora temp是一個ArrayList。它沒有鍵入,因爲這是Java 1.4 –