Оператор обновления Java SQL не обновляется в таблице, несмотря на отсутствие ошибок

ok, смотря на библиотеку, которую вы используете, я нашел это .setContentHolder(new ViewHolder(view))

, поэтому измените свой код с

DialogPlus dialog = DialogPlus.newDialog(this.context)
        .setContentHolder(viewHolder)
        .setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(DialogPlus dialog, Object item, View view, int position) {
            }
        })
        .setExpanded(true)  // This will enable the expand feature, (similar to android L share dialog)
        .create();

на

  DialogPlus dialog = DialogPlus.newDialog(this.context)
        .setContentHolder(new ViewHolder(dialogView ))
        .setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(DialogPlus dialog, Object item, View view, int position) {
            }
        })
        .setExpanded(true)  // This will enable the expand feature, (similar to android L share dialog)
        .create();
1
задан Mark Rotteveel 19 January 2019 в 11:54
поделиться

1 ответ

У вас есть синтаксическая ошибка, замените на:

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();
    }
} 
0
ответ дан Mark Rotteveel 19 January 2019 в 11:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: