与 纯JDBC 相比,您决定使用JDBCTemplate最有可能简化代码。
IMHO的这个特殊问题使其他答案中提出的 普通JDBC
解决方案更加简单,因此,我绝对建议从JDBCTemplate获取数据库连接并以JDBC方式进行插入。
我想到的使用JDBCTemplate的最简单解决方案是将插入内容包装在中,
PROCEDURE然后将时间戳作为
OUT参数返回。
简单示例(根据需要调整时间logik)
create procedure insert_with_return_time (p_str VARCHAR2, p_time OUT DATE) asBEGIN 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中抢救过来的 ;)



