Java如何增加数据库表中 double 的值

标签 java sql database sql-update

我在弄清楚将更新我的一个表中的列中的值的查询时遇到了一些麻烦。以下是我的功能:

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] 的值),我想将该记录的价格(也是 double 类型)增加该值'str[1]'并对表中的所有记录执行此操作。

上面的代码没有给出任何错误,但是数据库中的记录永远不会更新。我确实需要一些帮助,因为我已经搜索了一段时间来尝试找到解决方案,但尚未成功。

最佳答案

我不知道你正在使用什么数据库,但我的猜测是这一行:

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 行或更多行。

关于Java如何增加数据库表中 double 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53641446/

相关文章:

java - 如何清除android中静态自定义 ListView 的所有 ListView 项?

sql - Postgres 函数比查询/Postgres 8.4 慢

sql - MySQL,从一个字符串中查找另一个字符串中的单词

java - Websphere maven 依赖项

java - 远程 MySQL DB 和 eclipse

java - 从一个 SQL 表中获取与另一个表有关系的数据计数并在 Java 中使用它

c# - 如果文本框为空,此代码返回日期 1-1-0001 ...我希望它返回空或空字符串,那么我该怎么办?

php - 通过 HTML 编辑 MySQL 数据库——选项?

database - 非关系数据库

java - 在构建胡椒的 Android Studio 应用程序时出现错误