Решихте да използвате JDBCTemplate най-вероятно, за да опростите кода в сравнение с обикновен JDBC .
Този конкретен проблем IMHO прави обикновения JDBC решение, както е предложено в друг отговор много по-просто, така че определено бих препоръчал да получите връзката с базата данни от JDBCTemplate и да направите вмъкването по JDBC начин.
Най-простото решение с помощта на JDBCTemplate, което ми идва наум, е да обвия вмъкването в PROCEDURE
и връща клеймото за време като OUT
параметър.
Прост пример (Коригирайте логиката на времето според изискванията)
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;
/
Обаждането се извършва чрез 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
съдържа върнатата стойност, напр. [P_TIME:2019-10-19 11:58:10.0]
Но мога само да повторя, в този конкретен случай на употреба IMHO JDBC е спасение от JDBCTemplate;)