1 回答
TA贡献1921条经验 获得超9个赞
您有语法错误,请更改为:
UPDATE library_students.book SET CopiesInBorrow= ?, AvailableCopies=? WHERE BookID=?
不要AND在要更新的列之间使用。您可以AND在WHERE零件中使用以应用您想要的条件。
如果你想要这样的东西:
UPDATE library_students.book SET CopiesInBorrow= ? WHERE AvailableCopies=? AND BookID=?
那么使用AND将是有效的。
从您的代码中,我看到您只想增加一列的值并减少另一列的值。您无需先在表中找到这些值,然后再进行更改。
您可以执行以下语句:
UPDATE library_students.book SET CopiesInBorrow = CopiesInBorrow + 1, AvailableCopies = AvailableCopies - 1 WHERE BookID = ?
所以改成这样:
public void updateFields(BorrowedBook borrowedBook) throws SQLException {
PreparedStatement pstmt;
try {
Statement stmt = con.createStatement();
pstmt = con.prepareStatement("UPDATE library_students.book SET CopiesInBorrow = CopiesInBorrow + 1, AvailableCopies = AvailableCopies - 1 WHERE BookID = ?");
pstmt.setString(1, getBookID(borrowedBook));
pstmt.executeUpdate();
rs.close();
}catch (SQLException ex) {
ex.printStackTrace();
}
}
添加回答
举报
