如何使用 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(...)
方法之一。
在幕后,jdbcTemplate.query(...)
创建一个 PreparedStatement
并调用 executeQuery()
。它只不过是一个帮手 class 做那个1。一个非常强大的助手class,有很多不错的功能,但基本上就是这样。
1) 也用于调用 executeUpdate()
,或者当然。
我在 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(...)
方法之一。
在幕后,jdbcTemplate.query(...)
创建一个 PreparedStatement
并调用 executeQuery()
。它只不过是一个帮手 class 做那个1。一个非常强大的助手class,有很多不错的功能,但基本上就是这样。
1) 也用于调用 executeUpdate()
,或者当然。