如何使用 Spring JDBC 中的返回值实现更新请求

How to implement UPDATE request with RETURNING values in Spring JDBC

我在 Java EE、Postgresql 中有更新请求返回 2 个值。

connection = DriverManager.getConnection(DB_URL, DB_USER, DB_PASSWORD);
            statement = connection.prepareStatement(
                    "UPDATE system.current_orders SET " +
                            "status_id = 3, " +
                            "taken_dt = now(), " +
                            "system_dt = now(), " +
                            "driver_car_id_taken = ?, " +
                            "driver_color_id_taken = ?, " +
                            "WHERE id = ?" +
                            "RETURNING aggregator_id, taxi_name_from"
            );
            statement.setInt(1, driverCarIdTaken);
            statement.setInt(2, driverColorIdTaken);
            statement.setInt(3,orderId);
            resultSet = statement.executeQuery();

            while (resultSet.next()) {
                aggregatorId = resultSet.getInt("aggregator_id");
                token = resultSet.getString("taxi_name_from");
            }

如何在 Spring JDBC 中实现以在一个更新请求中获取 2 个值

如代码所示,SQL 语句的工作方式类似于 SELECT 查询 ,因此使用 executeQuery().

因此,与在 Spring 中使用 SELECT 查询完全相同 JDBC:

在幕后,jdbcTemplate.query(...) 创建一个 PreparedStatement 并调用 executeQuery()。它只不过是一个帮手 class 做那个1。一个非常强大的助手class,有很多不错的功能,但基本上就是这样。

1) 也用于调用 executeUpdate(),或者当然。