Я вижу несколько потенциальных проблем здесь. Сначала вы передаете строку SQL в executeUpdate()
, что неверно. Это неверно, потому что версия того метода, который вы хотите вызвать, предназначена для подготовленных операторов и не принимает никаких входных параметров (вы вызываете версию Statement
). Во-вторых, вы забыли перечислить столбцы, которые вы хотите выбрать в своей таблице для вставленных данных. В общем, вы должны всегда явно перечислять все столбцы вставки. Соединяя их вместе, мы можем попробовать следующую исправленную версию:
String sql = "INSERT INTO Repondre (col1, col2, col3, col4) VALUES (?, ?, ?, ?)";
PreparedStatement ps = connection.prepareStatement(sql2);
ps.setInt(1, 1);
ps.setInt(2, 1);
ps.setInt(3, resultSet.getInt(1));
RadioButton rb = (RadioButton)q1.getSelectedToggle();
ps.setString(4, rb.getText().toLowerCase());
preparedStatement.executeUpdate(); // NO parameters here
Примечание. Явное перечисление столбцов важно, потому что вы хотите вставить свои данные в нужное место. Иногда можно было бы не перечислять столбцы, и случайно все данные, о которых вы упомянули, оказались одного типа. Это может привести к незначительной ошибке.