Anda memutuskan untuk menggunakan JDBCTemplate kemungkinan besar untuk menyederhanakan kode dibandingkan dengan JDBC biasa .
Masalah khusus ini IMHO membuat JDBC biasa solusi seperti yang diusulkan dalam jawaban lain jauh lebih sederhana, jadi saya sangat merekomendasikan untuk mendapatkan koneksi database dari JDBCTemplate dan membuat penyisipan dengan cara JDBC.
Solusi paling sederhana menggunakan JDBCTemplate yang muncul di benak saya adalah membungkus sisipan dalam PROCEDURE
dan kembalikan stempel waktu sebagai OUT
parameter.
Contoh sederhana (Sesuaikan logik waktu sesuai kebutuhan)
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;
/
Panggilan dilakukan menggunakan 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
berisi nilai yang dikembalikan mis. [P_TIME:2019-10-19 11:58:10.0]
Tapi saya hanya bisa mengulangi, dalam kasus penggunaan khusus ini adalah IMHO JDBC a rescue from JDBCTemplate;)