为什么在PreparedStatement中该值仅在一列中更新

时间:2019-06-26 11:43:10

标签: java jdbc prepared-statement

PreparedStatement下方的column2得到更新,但是column1没有得到更新。请帮助

PreparedStatement pStmt = conn.prepareStatement( "UPDATE user SET column1 = ? , column2 = ?  WHERE id = ?" )

pStmt.setNull( 1, Types.NULL );
pStmt.setNull( 2, Types.NULL );
pStmt.setInt( 3, id);
int count = pStmt.executeUpdate();

1 个答案:

答案 0 :(得分:1)

对我来说(Oracle)有效。但这取决于,调用setNull

时可能需要定义列的类型。
  

sqlType-在java.sql.Types中定义的SQL类型代码

例如VARCHAR

pStmt.setNull(2, java.sql.Types.VARCHAR);