यदि आप परमाणु रूप से एकाधिक कथन निष्पादित करना चाहते हैं, तो आपको लेनदेन का उपयोग करने की आवश्यकता है। एक JDBC कनेक्शन 'ऑटो-कमिट' मोड में डिफॉल्ट करता है, जिसका अर्थ है कि प्रत्येक स्टेटमेंट को अपने लेनदेन में निष्पादित किया जाता है। तो आपको सबसे पहले Connection.setAutoCommit(false)
।
ऑटो-प्रतिबद्ध मोड अक्षम होने के साथ, वर्तमान लेनदेन में निष्पादित विवरण निष्पादित किए जाएंगे, यदि कोई वर्तमान लेनदेन नहीं है, तो एक शुरू हो जाएगा। यह लेन-देन या तो Connection.commit()
या Connection.rollback()
।
आपको कुछ ऐसा करना होगा:
try (Connection connection = DriverManager.getConnection(...)) {
connection.setAutoCommit(false);
try (Statement stmt = connection.createStatement()) {
stmt.executeUpdate(<your first update>);
stmt.executeUpdate(<your second update>);
connection.commit();
} catch (SQLException e) {
connection.rollback();
throw e;
}
}
अधिक विवरण के लिए, JDBC ट्यूटोरियल अध्याय लेन-देन का उपयोग करना देखें। ।
और कृपया तैयार कथनों के बारे में जानें। क्वेरी स्ट्रिंग में मानों को जोड़ना खराब है, क्योंकि यदि आप मानों से बचना भूल जाते हैं तो इससे SQL इंजेक्शन या अजीब त्रुटियां हो सकती हैं। JDBC ट्यूटोरियल अध्याय तैयार वक्तव्यों का उपयोग करना भी देखें। ।