कनेक्शन बनाने/प्राप्त करने के सामान्य जेडीबीसी मुहावरे को एकीकृत करने, डेटाबेस से पूछताछ और संभावित रूप से जावा 7 के स्वचालित संसाधन प्रबंधन के साथ परिणामों को संसाधित करने के लिए, कोशिश करें - स्रोतों का बयान?जावा 7 स्वचालित संसाधन प्रबंधन जेडीबीसी (कोशिश-के-संसाधन विवरण)
Connection con = null;
PreparedStatement prep = null;
try{
con = getConnection();
prep = prep.prepareStatement("Update ...");
...
con.commit();
}
catch (SQLException e){
con.rollback();
throw e;
}
finally{
if (prep != null)
prep.close();
if (con != null)
con.close();
}
जावा 7 के साथ
आप के लिए जा सकते हैं: (Tutorial)
जावा 7 से पहले, हमेशा की तरह पैटर्न कुछ इस तरह था
try(Connection con = getConnection(); PreparedStatement prep = con.prepareConnection("Update ..."){
...
con.commit();
}
यह Connection
और PreparedStatement
बंद हो जाएगा, लेकिन रोलबैक के बारे में क्या? मैं रोलबैक युक्त कैच क्लॉज नहीं जोड़ सकता, क्योंकि कनेक्शन केवल कोशिश ब्लॉक के भीतर उपलब्ध है।
क्या आप अभी भी प्रयास ब्लॉक के बाहर कनेक्शन को परिभाषित करते हैं? यहां सबसे अच्छा अभ्यास क्या है, खासकर यदि कनेक्शन पूलिंग का उपयोग किया जाता है?
मैं बस उन परिस्थितियों में ऑटो-क्लोज़ का उपयोग नहीं करूंगा। जैसा कि पहले से ही कहा गया है कि यह संसाधन बंद करने के लिए है। बीटीडब्ल्यू: 'कोशिश करें ...' ब्लॉक के बाहर कनेक्शन डालने से मदद नहीं मिलेगी क्योंकि कनेक्शन को ब्लॉक करने के बाद आप रोलबैक नहीं कर सकते क्योंकि कनेक्शन पहले से बंद है। – home
http://stackoverflow.com/questions/8066501/how-should-i-use-try-with-resources-with-jdbc – Raedwald
@ रेडवाल्ड का संभावित डुप्लिकेट: नहीं, यह डुप्लिकेट नहीं है। यह यहाँ con.rollback() के बारे में है। – Bijan