2
PreparedStatement.setObject的Javadoc說只傳遞空值並不安全,並建議使用setNull來代替,這需要傳遞列DB類型。setObject和null的安全
因爲在Java中告訴空值的類型並不簡單,我不知道是否有任何資源列出了爲流行的數據庫調用setObject爲null值的安全性?
PreparedStatement.setObject的Javadoc說只傳遞空值並不安全,並建議使用setNull來代替,這需要傳遞列DB類型。setObject和null的安全
因爲在Java中告訴空值的類型並不簡單,我不知道是否有任何資源列出了爲流行的數據庫調用setObject爲null值的安全性?
在oracle的java文檔中有一個相當有趣的頁面。
阿比納夫
市價修改EJP的評論:
下面的setObject聲明是更好的,並建議按照Java文檔:
void setObject(int parameterIndex, Object x, int targetSqlType)
注:不所有數據庫都允許發送非類型的Null到後端。爲了獲得最大的可移植性,應該使用setNull或setObject(int parameterIndex,Object x,int sqlType)方法代替setObject(int parameterIndex,Object x)。
對象類型可以使用上面鏈接的映射列表來標識。
鏈接到頁面,無論是有趣還是其他,都不是自己的答案。這個完全沒有趣味,因爲甚至沒有出現'null'這個詞。 -1 – EJP 2013-03-22 23:48:11
我會說這個頁面非常有趣,但與這個問題無關。此外,我沒有找到Java 7的這些表,這是否意味着它們已經過時? – 2013-03-23 00:01:03
它沒有看到Java 7的問題,所以我發佈了一個我最喜歡的東西。所有這些也適用於Java 7。更新第二個鏈接與最新的一個。 – Abhinav 2013-03-23 00:11:19