Có lẽ bạn đã quyết định sử dụng JDBCTemplate nhiều nhất để đơn giản hóa mã so với JDBC đơn giản .
Vấn đề cụ thể này IMHO làm cho JDBC đơn giản giải pháp như được đề xuất trong câu trả lời khác đơn giản hơn nhiều, vì vậy tôi chắc chắn khuyên bạn nên lấy kết nối cơ sở dữ liệu từ JDBCTemplate và thực hiện chèn theo cách JDBC.
Giải pháp đơn giản nhất sử dụng JDBCTemplate mà tôi nghĩ đến là bọc chèn trong một PROCEDURE
và trả về dấu thời gian dưới dạng OUT
tham số.
Ví dụ đơn giản (Điều chỉnh thời gian theo yêu cầu)
create procedure insert_with_return_time (p_str VARCHAR2, p_time OUT DATE) as
BEGIN
insert into identity_pk(pad) values(p_str);
p_time := sysdate;
END;
/
Cuộc gọi được thực hiện bằng SimpleJdbcCall
SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate).withProcedureName("insert_with_return_time");
SqlParameterSource params = new MapSqlParameterSource().addValue("p_str", str);
Map<String, Object> out = jdbcCall.execute(params);
Map
chứa giá trị trả về, ví dụ:[P_TIME:2019-10-19 11:58:10.0]
Nhưng tôi chỉ có thể nhắc lại, trong trường hợp sử dụng cụ thể này, IMHO JDBC là giải cứu từ JDBCTemplate ;)