为了账号安全,请及时绑定邮箱和手机立即绑定

尽管没有出现错误,但 Java SQL 更新语句未在表中更新

尽管没有出现错误,但 Java SQL 更新语句未在表中更新

POPMUISE 2022-05-12 15:12:07
public void updateFields(BorrowedBook borrowedBook) throws SQLException {    Integer copiesInBorrow = new Integer(0);    Integer availableCopies = new Integer(0);    PreparedStatement pstmt;    try {        Statement stmt = con.createStatement();        ResultSet rs = stmt.executeQuery("SELECT * FROM library_students.book WHERE BookID=" + "'" + getBookID(borrowedBook)+ "'");        if((rs.next())){            copiesInBorrow=rs.getInt(11);            availableCopies=rs.getInt(13);        }        pstmt = con.prepareStatement("UPDATE library_students.book SET CopiesInBorrow= ? AND AvailableCopies=? WHERE BookID=?");        pstmt.setInt(1,++copiesInBorrow);        pstmt.setInt(2,--availableCopies);        pstmt.setString(3,getBookID(borrowedBook));        pstmt.executeUpdate();        rs.close();        }catch (SQLException ex) {            ex.printStackTrace();        }}我没有收到任何错误,并且 executeUpdate(); 还返回 1 有什么问题?
查看完整描述

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();

    }


查看完整回答
反对 回复 2022-05-12
  • 1 回答
  • 0 关注
  • 252 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号