posso usare setObject()
metodo PreparedStatement
per tutti i tipi di dati (come string
, int
, double
..)?setObject() metodo di PreparedStatement
Quali sono i potenziali problemi che vedo se lo uso?
protected void fillStatement(PreparedStatement stmt, Object[] params)
throws SQLException {
if (params == null) {
return;
}
for (int i = 0; i < params.length; i++) {
if (params[i] != null) {
stmt.setObject(i + 1, params[i]);
} else {
stmt.setNull(i + 1, Types.OTHER);
}
}
}
Sì, è possibile, e dovrebbe funzionare, e sospetto che sia ciò che fanno anche le librerie come Hibernate. Come al solito, alcuni driver potrebbero essere solo un po 'buggati in alcuni casi d'angolo. – Thilo
Ad esempio, Oracle sembra avere problemi con setNull: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java? revisione = 1362322 & view = markup # l215 – Thilo
http://stackoverflow.com/questions/19421374/arithmetic-overflow-or-other-arithmetic-exception-when-using-setobject-method Leggi questo link per ulteriori dettagli. – Eddy