बयानों का परिचय

सभी SQL प्रश्नों को सशर्त रूप से दो समूहों में विभाजित किया जा सकता है:

  • डेटा प्राप्त करना − इनमें SELECT Statement शामिल है ।
  • डेटा संशोधित करना − इनमें INSERT , UPDATE और DELETE कथन शामिल हैं ।

पहले समूह के लिए, पहले से ही परिचित स्टेटमेंट इंटरफ़ेस विधि का उपयोग किया जाता है - एग्जीक्यूटक्वेरी () । सिद्धांत रूप में, यह विधि आरंभ करने के लिए काफी है। इसमें बहुत बड़ी संख्या में प्रश्नों को शामिल किया गया है, जिनकी आपको वास्तविक नौकरी में उपयोग करने की आवश्यकता होगी।

हम बाद में और अधिक विकल्पों में शामिल होंगे, लेकिन अभी के लिए, मैं आपको याद रखने की सलाह देता हूं - यदि आप केवल तालिका से डेटा प्राप्त करना चाहते हैं, तो ज्यादातर मामलों में एग्जीक्यूटिव () विधि सही विकल्प होगी।

अनुरोधों के दूसरे समूह के लिए, आपको स्टेटमेंट इंटरफ़ेस की एक अन्य विधि का उपयोग करने की आवश्यकता है - एग्जीक्यूटअपडेट ()ExecuteQuery() विधि के विपरीत , जो एक परिणामसेट देता है, यह विधि एक पूर्णांक देता है जो आपको बताता है कि आपकी क्वेरी निष्पादित होने पर तालिका में कितनी पंक्तियां बदली गई थीं

उदाहरण के लिए, आप DELETE FROM कर्मचारी कथन के साथ सभी पंक्तियों को हटा सकते हैं (इसलिए बहुत सावधान रहें)। इस मामले में, executeUpdate() विधि हटाए गए पंक्तियों की संख्या वापस कर देगी। कुछ स्थितियों में, परिवर्तित पंक्तियों की संख्या जानना डेटा के साथ काम करने के लिए एल्गोरिदम बनाने में उपयोगी हो सकता है।

सिद्धांत रूप में, हम इस प्रश्न को समाप्त कर सकते हैं - हम पहले ही मुख्य बात देख चुके हैं। डेटा लाने के लिए - executeQuery() । डेटा बदलने के लिए - executeUpdate()

निष्पादक () विधि का उपयोग करके उपयोगकर्ता तालिका में उपयोगकर्ताओं की संख्या प्राप्त करें :


	ResultSet results = statement.executeQuery("SELECT Count(*) FROM user");
	results.next();
    int count = results.getInt(1);

निष्पादन अद्यतन ()

ExecuteUpdate() विधि का उपयोग तब किया जाता है जब आपकी क्वेरी किसी तालिका में कुछ बदलती है। यह कुछ भी हो सकता है:

  • अद्यतन कथन
  • इंसर्ट स्टेटमेंट
  • DELETE कथन
  • कॉल प्रक्रिया विवरण

यह विधि परिवर्तित (या हटाई गई) पंक्तियों की संख्या लौटाती है।

आइए एक अनुरोध लिखें जो हमारे सभी कर्मचारियों के वेतन में 1000 रूबल की वृद्धि करेगा।


   int rowsCount = statement.executeUpdate("UPDATE  employee SET salary = salary+1000");

मेरे द्वारा इस कोड को चलाने के बाद, इसने मेरी टेबल पर नंबर 6 लौटा दिया। मेरी टेबल में 6 पंक्तियाँ थीं। इसलिए सभी लाइनें बदल दी गई हैं।

अमल में लाना()

कभी-कभी आपके जीवन में ऐसी परिस्थितियाँ उत्पन्न हो सकती हैं जब आपको ठीक-ठीक पता नहीं होता है कि आपको किस अनुरोध पर अमल करना है - एक चयन या एक डेटा परिवर्तन। इस मामले में, JDBC के रचनाकारों ने इसमें एक और सामान्य तरीका जोड़ा - निष्पादित ()

इस विधि का उपयोग executeQuery() और executeUpdate() विधियों के स्थान पर किया जा सकता है । क्या आपको याद है कि ये तरीके कैसे भिन्न थे? सही। परिणाम प्रकार। इसलिए, JDBC के निर्माता इस तरह का समाधान लेकर आए।

निष्पादन () विधि बूलियन लौटाती है। यदि यह मान सत्य है , तो डेटा लाने का अनुरोध प्रगति पर था, और आपको डेटा प्राप्त करने के लिए getResultSet() विधि को कॉल करने की आवश्यकता है। उदाहरण:


    boolean hasResults = statement.execute("SELECT Count(*) FROM user");
    if ( hasResults ) {
        	ResultSet results =  statement.getResultSet();
        	results.next();
        	int count = results.getInt(1);
 	}

यदि यह मान गलत है , तो डेटा परिवर्तन अनुरोध प्रगति पर था, और आपको पंक्तियों की संख्या बदलने के लिए getUpdateCount() विधि को कॉल करने की आवश्यकता है। उदाहरण:


    boolean hasResults = statement.execute("UPDATE  employee SET salary = salary+1000");
    if ( !hasResults ) {
      	int count = statement.getUpdateCount();
 	}

आइए एक विधि लिखें जो क्वेरी का परिणाम प्रदर्शित करती है:


	public void executeAndPrintSQLQuery(String sqlQuery) {
 
        boolean hasResults = statement.execute(sqlQuery);
        if ( hasResults ) {
 	          ResultSet results =  statement.getResultSet();
           	System.out.println(“Your request lines below:);
 
           	while (results.next()) {
 	                 Integer id = results.getInt(1);
     	             String name = results.getString(2);
                      System.out.println(results.getRow() + ". " + id + "\t"+ name);
  	        }
       }
 	  else {
            int count = statement.getUpdateCount();
        	System.out.println(“Number of name strings:+ count);
  	}
}

इस प्रकार अमल () विधि आमतौर पर व्यवहार में उपयोग की जाती है।