Sie haben sich höchstwahrscheinlich für JDBCTemplate entschieden, um den Code im Vergleich zu reinem JDBC zu vereinfachen .
Dieses besondere Problem macht meiner Meinung nach das einfache JDBC Lösung wie in andere Antwort vorgeschlagen viel einfacher, daher würde ich definitiv empfehlen, die Datenbankverbindung von JDBCTemplate zu erhalten und die Einfügung auf JDBC-Weise vorzunehmen.
Die einfachste Lösung mit JDBCTemplate, die mir in den Sinn kommt, besteht darin, die Einfügung in ein PROCEDURE
einzuschließen und den Zeitstempel als OUT
zurückgeben Parameter.
Einfaches Beispiel (Passen Sie die Zeitlogik nach Bedarf an)
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;
/
Der Aufruf erfolgt über 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);
Die Map
enthält den zurückgegebenen Wert z.B. [P_TIME:2019-10-19 11:58:10.0]
Aber ich kann nur wiederholen, in diesem speziellen Anwendungsfall ist IMHO JDBC eine Rettung von JDBCTemplate;)