對於所有數據類型,我可以使用setObject()
方法PreparedStatement
(如string
,int
,double
..)?PreparedStatement的setObject()方法
我看到的潛在問題是什麼,如果我使用它?
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);
}
}
}
是的,你可以,它應該工作,我懷疑這就是像Hibernate這樣的庫。像往常一樣,一些司機在某些角落裏可能只是一些小車。 – Thilo 2012-08-03 10:03:18
例如,Oracle似乎遇到了setNull問題:http://svn.apache.org/viewvc/commons/proper/dbutils/trunk/src/main/java/org/apache/commons/dbutils/AbstractQueryRunner.java?版本= 1362322&視圖=標記#l215 – Thilo 2012-08-03 10:08:52
http://stackoverflow.com/questions/19421374/arithmetic-overflow-or-other-arithmetic-exception-when-using-setobject-method請參閱此鏈接瞭解更多詳情。 – Eddy 2013-10-18 07:49:07