ich über die folgenden Codes gekommen sind, halte ich es für die falsche Sache tut:PreparedStatement setString (...) für alle, auch wenn corrsponding Datentyp ist eine ganze Zahl
(Beachten Sie, dass das JDK ist 1.4.2 daher wird die Liste nicht typisiert)
StringBuffer queryBuffer = new StringBuffer();
ArrayList temp = new ArrayList();
...
queryBuffer.append("and sb.POSTCODE = ? ");
temp.add(postcode);
...
conn = ConnectionManager.getConnection();
pstmt = conn.prepareStatement(queryBuffer.toString());
das ist, was ich bin besorgt über:
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));
}
aber ich habe festgestellt, dass einige der entsprechenden Datentypen (Feld) in der Datenbank sind integer, und Daten, wäre das in ordnung?
Ich glaube nicht, dass es gut ist. Scheint, dass dies auf impliziter Konvertierung beruht, und das führt oft zu Trauer auf der Straße. – Glenn
Ich rate "Temp" ist eine "Liste" - ist es generisch getippt? Bitte zeigen Sie ihre Erklärung an. –
@Paul Bellora Temp ist eine ArrayList. Und es ist nicht getippt, weil dies Java ist. 1.4 –