Задать вопрос
azerphoenix
@azerphoenix
Java Software Engineer

Не обновляется запись в БД (JavaFX + JDBC + SQLite) — JavaFX, как исправить?

Доброго времени суток, уважаемые форумчане.
Пару недель, как начал изучать Java и столкнулся с такой проблемой...
Создал небольшое приложение с использование java9 + javafx + jdbc (sqlite) + scenebuilder + maven (intellij idea).

Нужно чтобы измененная запись из таблицы tableView обновлялась в БД тоже. Добавление и удаление записи работает, а вот изменение почему-то нет. При этом никакой ошибки не отображается

Структура БД id, site, sitName, siteLogin и т.д. (всего 26 столбцов). Первый id primary auto increment

В чем я ошибся или что пропустил?

Коды:

public void sqlupdate(String site, String siteLogin, String sitePass  /* bla-bla */) {
        String updatesql = "UPDATE data SET site=? , " + " siteLogin = ? ," + " sitePass = ? ," + " ftp = ?," + " ftpLogin = ?," + " ftpPass = ?," + "port = ?," + "person = ?," + "personEmail = ?," + "personPass = ?," + "personPhone = ?," + "dbName = ?," + "dbUser = ?," + "dbPass = ?," + "dbHost = ?," + "hostingUrl = ?," + "hostingLogin = ?," + "hostingPass = ?," + "providerUrl = ?," + "providerLogin = ?," + "providerPass = ?," + "otherUrl = ?," + "otherLogin = ?," + "otherPass = ?," + "notes = ? "
                + "WHERE id = ?";
        try {
            SQLiteConfig config = new SQLiteConfig();
            Connection c = db.getInstance().getConnection();
            PreparedStatement pstmt = c.prepareStatement(updatesql);
 
            pstmt.setString(1, site);
            pstmt.setString(2, siteLogin);
            pstmt.setString(3, sitePass);
            /* и т.д.и т.п. Пробовал также использовать геттеры pstmt.setString(1, website.getSite); но как-то безрезультатно*/
 
            // update
            pstmt.executeUpdate();
 
        } catch (SQLException ex) {
            ex.printStackTrace();
            System.out.println("Возникла ошибка при добавлении записи");
        }


Затем для этого метода я добавил listener (соответственно метод добавил в тело метода кнопки AddButtonChange)

@Override
    public void AddButtonChange(ActionEvent actionEvent) {
sqlupdate("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "");
}


При нажатии на кнопку "Изменить" информация должна обновляться в БД. Однако, обновляется только в таблице.

Ссылка на проект: https://yadi.sk/d/VClTsgSI3PpY2j

Скрин - 3c894557-b127-45d8-81d2-1015dbf4eb77.png

Заранее спасибо)
  • Вопрос задан
  • 872 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@red-barbarian
WHERE id = ?
какое значение передаете в id?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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