[英]Can PreparedStatement's 'setObject' method be used for any datatype?
[英]setObject() method of 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);
}
}
}
我只使用setObject()
和MySQL,我從來沒有遇到過問題。 我不能代表其他數據庫或其他供應商。
您可能會遇到Blob或MSSQL DateTimeOffeet等專用日期字段的問題。
我還發現了一個問題“無法在java.lang.Character和JAVA_OBJECT之間進行轉換。”
如果參數是單個字符類型。
if (param instanceof Character) {
param = "" + param;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.