Я пытаюсь обновить свою базу данных SQL с помощью JBDC. Но почему-то запрос не выполняется. Я использую графический интерфейс Jframe для экрана входа в систему и меню.
Я пытаюсь получить номер учетной записи, введенный на экране входа в систему, и взять сумму, введенную пользователем, за вычетом текущего баланса, а затем передать номер учетной записи и сумму переименования в базу данных и обновить учетную запись остаток средств.
Это часть объявления некоторых значений:
public class MainMenu extends javax.swing.JFrame
{
private Login log = new Login();
private Account acc = null;
private String accnum = log.getacctfld();
Connection con = new DBConnection().connect();
}
Это код кнопки вывода:
private void withdrawActionPerformed(java.awt.event.ActionEvent evt)
{
String input = amountentered.getText();
if ("".equals(input))
{
message.setText("Enter amount to perform operation");
return;
}
Double amt = Double.parseDouble(input);
if (amt > acc.getAmount() || amt <= 0.0)
{
message.setText("INVALID AMOUNT. PLEASE TRY AGAIN.");
return;
}
double bal = acc.getAmount() - amt;
String command = "UPDATE user_atm SET balance =? WHERE accno =?";
try
{
PreparedStatement ps = con.prepareStatement(command);
ps.setDouble(1, bal);
ps.setString(2, accnum);
ps.executeQuery(); // I think the query isn't executing
ps.executeUpdate();
}
catch(Exception e)
{
}
acc.setAmount(bal);
balance.setText(bal + "");
amountentered.setText("");
}
ОБНОВИТЬ:
accnum не инициализировался. Я пытался передать значение из JTextField с моего экрана входа в систему. Но это не сработало. Итак, я передал номер учетной записи сеттеру, а затем назначил accnum получателю, и теперь он работает.
Я также удалил ps.executeQuery();
@forpas о да, я тоже удалил это. Извините, я забыл об этом упомянуть. Спасибо




Вы должны использовать executeUpdate() вместо executeQuery()
Насколько я понял, вы хотите обновить данные в БД, разве это не случай? executeQuery() используется с операторами SELECT для выборки строк, а не udate.
Так удалите ps.executeQuery();
Если это не сработает, значит, оператор неверен, или в таблице нет дополнительных данных.
Тем не менее вы должны удалить
ps.executeQuery();