ho incontrato i seguenti codici sento che sta facendo la cosa sbagliata:PreparedStatement setString (...) per tutti, anche se corrsponding tipo di dati è un numero intero
(Si noti che questo è JDK 1.4.2 , pertanto l'elenco non è digitato)
StringBuffer queryBuffer = new StringBuffer();
ArrayList temp = new ArrayList();
...
queryBuffer.append("and sb.POSTCODE = ? ");
temp.add(postcode);
...
conn = ConnectionManager.getConnection();
pstmt = conn.prepareStatement(queryBuffer.toString());
Questo è quello che mi preoccupa:
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));
}
ma ho notato che alcuni dei tipi di dati corrispondenti (campo) nel database sono interi, e date, questo va bene?
Non penso che sia buono. Sembra che questo si basi sulla conversione implicita, e che spesso porta al dolore lungo la strada. – Glenn
Sto indovinando che 'temp' è un' Elenco' - è tipicamente tipizzato? Si prega di mostrare la sua dichiarazione. –
@Paul Bellora temp è una lista di array. E non è stato digitato perché si tratta di Java 1.4 –