tüm veri türleri için PreparedStatement
arasında setObject()
yöntemi kullanabilir (gibi string
, int
, double
..)?setObject PreparedStatement
Bunu kullanıp kullanmadığımı gördüğüm olası sorunlar nelerdir?
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);
}
}
}
Evet, yapabilir ve işe yaraşır, ve ben de Hibernate gibi kitaplıkların da bunu yaptığından şüpheleniyorum. Her zaman olduğu gibi, bazı sürücüler bazı köşe durumlarda sadece biraz buggy olabilir. – Thilo
Örneğin, Oracle setNull ile sorun yaşıyor gibi görünüyor: http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java? revizyon = 1362322 & view = işaretleme # l215 – Thilo
http://stackoverflow.com/questions/19421374/arithmetic-overflow-or-other-arithmetic-exception-when-using-setobject-method Daha fazla bilgi için bu bağlantıya bakın. – Eddy