我有以下代码来更新记录。代码编译但是它会跳过try语句中的所有内容,并在catch语句中显示错误消息。我不确定我错过了什么,因为它没有显示任何类型的语法错误。Java中的更新声明
try {
PreparedStatement st = db.con.prepareStatement("UPDATE item SET Name = ?, Size = ?, Price = ?, WHERE ItemCode = ?");
st.setString(1, textArea_Code.getText());
st.setString(2, textArea_name.getText());
st.setString(3, textArea_size.getText());
st.setString(4, textArea_price.getText());
st.executeUpdate();
JOptionPane.showMessageDialog(frame, "Updated");
} catch (SQLException e) {
JOptionPane.showMessageDialog(frame, "update not successful");
}
它的这样一个愚蠢的错误我已经感谢你使我认识到:)但现在它显示消息框“更新”,但变化并不需要在数据库中的影响......你知道为什么这可能是? – FatmaTurk 2012-03-09 18:28:19
@FatmaTurk您的SQL字符串中有四个占位符,编号为1到4. 1是'Name'的值,2是'Size'的值,3是'Price'的值,4是' ItemCode'。现在看看你在'st.setString()'调用中传递的值。 – 2012-03-09 18:31:25
您可以像这样更新实际行的计数int updating = st.executeUpdate();检查计数并查看是否有实际更新。如果它返回> 0,那么检查你正在使用哪个数据库,自动提交模式是否打开等。 – 2012-03-09 18:32:18