0
我在我的數據庫中有一個非常大的表。其中一些字段可能爲空。如何逃避PreparedStatement.setNull?
我只是想從使用逃脫:
PreparedStatement.setNull(index, Type.X)
像:
if(obj.getSomaData() == null){
insertStmt.setNull(++i, java.sql.Types.VARCHAR);
}else{
insertStmt.setString(++i, obj.getSomaData());
}
有一個更好的和更清潔的方式做到這一點?
P.S .:我正在使用PostgreSQL。
你的意思是說你不想使用'setNull()'方法?如果您正在INSERT數據,則不需要顯式設置值NULL,因爲缺省值默認爲NULL。 –
我認爲Postgres JDBC驅動程序會處理'setString(index,null)'就好了 –
@MickMnemonic這隻有在這些列沒有包含在insert語句中,如果包含它們,JDBC驅動程序應該爲值沒有明確設置。請參閱JDBC 4.2第13.2.2節:_「如果未爲參數標記提供值,則用於執行」PreparedStatement「對象('executeQuery','executeUpdate'和'execute')的方法將拋出'SQLException'。 「# –