विधानांचा परिचय

सर्व SQL क्वेरी सशर्तपणे दोन गटांमध्ये विभागल्या जाऊ शकतात:

  • डेटा पुनर्प्राप्त करणे - यामध्ये SELECT विधान समाविष्ट आहे .
  • डेटा बदलणे - यामध्ये INSERT , UPDATE , आणि DELETE स्टेटमेंट्स समाविष्ट आहेत .

पहिल्या गटासाठी, आम्हाला आधीच परिचित असलेली स्टेटमेंट इंटरफेस पद्धत वापरली जाते - executeQuery() . तत्वतः, ही पद्धत प्रारंभ करण्यासाठी पुरेशी आहे. यात तुम्हाला खर्‍या नोकरीमध्ये वापरण्याची आवश्यकता असणार्‍या क्वेरींची खूप मोठी टक्केवारी समाविष्ट आहे.

आम्ही नंतर आणखी पर्याय शोधू, परंतु आत्तासाठी, मी तुम्हाला लक्षात ठेवण्याचा सल्ला देतो - जर तुम्हाला फक्त टेबलवरून डेटा मिळवायचा असेल, तर बहुसंख्य प्रकरणांमध्ये executeQuery () पद्धत योग्य निवड असेल.

विनंत्यांच्या दुसऱ्या गटासाठी, तुम्हाला स्टेटमेंट इंटरफेसची दुसरी पद्धत वापरण्याची आवश्यकता आहे - executeUpdate() . executeQuery() पद्धतीच्या विपरीत , जी ResultSet परत करते, ही पद्धत पूर्णांक मिळवते जी तुमची क्वेरी कार्यान्वित झाल्यावर टेबलमधील किती पंक्ती बदलल्या गेल्या हे सांगते .

उदाहरणार्थ, तुम्ही DELETE FROM कर्मचारी विधानासह सर्व पंक्ती हटवू शकता (म्हणून अत्यंत सावधगिरी बाळगा). या प्रकरणात, executeUpdate() पद्धत हटवलेल्या पंक्तींची संख्या परत करेल. काही परिस्थितींमध्ये, बदललेल्या पंक्तींची संख्या जाणून घेणे डेटासह कार्य करण्यासाठी अल्गोरिदम तयार करण्यासाठी उपयुक्त ठरू शकते.

तत्वतः, आम्ही हा प्रश्न पूर्ण करू शकतो - आम्ही मुख्य गोष्ट आधीच पाहिली आहे. डेटा आणण्यासाठी - executeQuery() . डेटा बदलण्यासाठी - executeUpdate() .

executeQuery() पद्धत वापरून वापरकर्ता टेबलमधील वापरकर्त्यांची संख्या मिळवा :


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

executeUdate()

जेव्हा तुमची क्वेरी टेबलमध्ये काहीतरी बदलते तेव्हा executeUpdate() पद्धत वापरली जाते. हे काहीही असू शकते:

  • अद्यतन विधान
  • INSERT विधान
  • विधान हटवा
  • कॉल प्रक्रिया विधान

ही पद्धत बदललेल्या (किंवा हटवलेल्या) पंक्तींची संख्या परत करते.

चला एक विनंती लिहूया ज्यामुळे आमच्या सर्व कर्मचार्‍यांचा पगार 1000 रूबलने वाढेल.


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

मी हा कोड रन केल्यानंतर, त्याने माझ्या टेबलवर 6 क्रमांक परत केला. माझ्या टेबलमध्ये 6 पंक्ती होत्या. त्यामुळे सर्व ओळी बदलण्यात आल्या आहेत.

कार्यान्वित करा()

काहीवेळा तुमच्या जीवनात अशी परिस्थिती उद्भवू शकते जेव्हा तुम्हाला नेमकी कोणती विनंती पूर्ण करायची आहे - निवड किंवा डेटा बदल. या प्रकरणात, JDBC च्या निर्मात्यांनी त्यात आणखी एक सामान्य पद्धत जोडली - execute() .

ही पद्धत executeQuery() आणि executeUpdate() पद्धतींच्या जागी वापरली जाऊ शकते . या पद्धती कशा वेगळ्या होत्या हे तुम्हाला आठवते का? बरोबर. परिणाम प्रकार. म्हणून, जेडीबीसीच्या निर्मात्यांनी असा उपाय शोधून काढला.

execute() पद्धत बुलियन परत करते. जर हे मूल्य खरे असेल , तर डेटा आणण्याची विनंती प्रगतीपथावर होती, आणि डेटा मिळविण्यासाठी तुम्हाला 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);
  	}
}

अशाप्रकारे execute() पद्धत सहसा व्यवहारात वापरली जाते.