Java, как увеличить значение double в таблице базы данных - PullRequest
0 голосов
/ 06 декабря 2018

У меня возникли проблемы с поиском запроса, который обновит значения в столбце одной из моих таблиц.Ниже приведена моя функция:

public void increasePrice(String [] str) {

    PreparedStatement ps = null;
    try {
        ps = connection.prepareStatement("Update Journey Set price+=? where distance <?",PreparedStatement.RETURN_GENERATED_KEYS);
        ps.setDouble(1,Double.parseDouble(str[1]));
        ps.setDouble(2, Double.parseDouble(str[0]));          
        ps.executeUpdate();

        ps.close();
        System.out.println("1 rows updated.");
    } catch (SQLException ex) {
        Logger.getLogger(Jdbc.class.getName()).log(Level.SEVERE, null, ex);
    }
}

Чтобы проиллюстрировать, переданный массив содержит значение для расстояния и цены, и я хочу обновить цены в таблице «Путешествие» на основе их расстояния.Например, если запись в таблице имеет расстояние (тип double), которое меньше данного расстояния (значение str [0]), я хочу увеличить цену (также в два раза) этой записи на значение'str [1]' и сделайте это для всех записей в таблице.

Приведенный выше код не выдает никаких ошибок, однако записи в базе данных никогда не обновляются.Я мог бы действительно использовать некоторую помощь с этим, поскольку я искал некоторое время вокруг, чтобы попытаться найти решение, и пока не преуспел.

1 Ответ

0 голосов
/ 06 декабря 2018

Я не знаю, какую базу данных вы используете, но я думаю, что эта строка:

ps = connection.prepareStatement("Update Journey Set price+=? where distance <?",PreparedStatement.RETURN_GENERATED_KEYS);

должна быть написана так:

ps = connection.prepareStatement("Update Journey Set price=price+? where distance <?",PreparedStatement.RETURN_GENERATED_KEYS);

И не относится к вашему вопросуно строка

System.out.println("1 rows updated.");

может привести к потере часов отладки в будущем, поскольку фактически может быть обновлено 0 или более строк.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...