Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

JDBC के साथ एक लेनदेन में 2 अद्यतन प्रश्नों को कैसे निष्पादित करें?

यदि आप परमाणु रूप से एकाधिक कथन निष्पादित करना चाहते हैं, तो आपको लेनदेन का उपयोग करने की आवश्यकता है। एक 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 ट्यूटोरियल अध्याय तैयार वक्तव्यों का उपयोग करना भी देखें। ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. बेहद बुनियादी PHP और Mysql

  2. MySQL में ENUM वैरिएबल टाइप बनाना

  3. मैं कैसे जांचूं कि PHP पहले से किसी डेटाबेस से कनेक्ट है या नहीं?

  4. मैसकल सेवा गायब है

  5. हाइबरनेट hbm2ddl.auto डिफ़ॉल्ट मान