INSERT कथन को निष्पादित करने के लिए आपको executeUpdate() विधि का उपयोग करने की आवश्यकता होगी, जबकि आपको SELECT कथन को निष्पादित करने के लिए executeQuery() विधि का उपयोग करने की आवश्यकता होगी। यह JDBC विनिर्देश द्वारा उनके उपयोगों पर लगाई गई आवश्यकताओं के कारण है:
और Statement.executeUpdate() :
आपका कोड (यहाँ पोस्ट किया गया छद्म कोड) इस तरह दिखना चाहिए:
statement.executeUpdate("INSERT INTO Sessions(id_user) VALUES(1)"); // DML operation
statement.executeQuery("SELECT LAST_INSERT_ID()"); // SELECT operation
और हां, MySQL प्रलेखन दर्शाता है कि AUTO_INCREMENT कॉलम के लिए समान गतिविधि कैसे करें , जो स्पष्ट रूप से आपको चाहिए।
यदि आपको एक ही लेन-देन में दोनों को एक साथ निष्पादित करने की आवश्यकता है, तो एक स्ट्रिंग में एक अर्ध-कोलन के साथ बयान सबमिट करके उन्हें निम्न की तरह अलग करें:
statement.execute("INSERT INTO Sessions(id_user) VALUES(1); SELECT LAST_INSERT_ID() FROM Sessions LIMIT 1;");
तो आपको निष्पादन() विधि का उपयोग करने की आवश्यकता होगी। ध्यान दें, कि यह डेटाबेस और JDBC ड्राइवर द्वारा दिए गए समर्थन पर निर्भर करता है, जो एक ही एक्जीक्यूट () में स्टेटमेंट को एक साथ बैचने के लिए है। यह Sybase और MSSQL सर्वर में समर्थित है, लेकिन मुझे नहीं लगता कि यह MySQL में समर्थित है।