आपने सादे JDBC की तुलना में कोड को सरल बनाने के लिए संभवतः JDBCTemplate का उपयोग करने का निर्णय लिया है .
यह विशेष समस्या 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 से बचाव है;)