puedo usar setObject()
método de PreparedStatement
para todos los tipos de datos (como string
, int
, double
..)?setObject() método de PreparedStatement
¿Cuáles son los posibles problemas que veo si uso eso?
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í, puede, y debería funcionar, y sospecho que esto es lo que también hacen las bibliotecas como Hibernate. Como de costumbre, algunos controladores pueden estar un poco caídos en algunos casos de esquina. – Thilo
Por ejemplo, Oracle parece tener problemas con setNull: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java? revision = 1362322 & view = markup # l215 – Thilo
http://stackoverflow.com/questions/19421374/arithmetic-overflow-or-other-arithmetic-exception-when-using-setobject-method Consulte este enlace para obtener más detalles. – Eddy