அறிக்கைகள் அறிமுகம்
அனைத்து SQL வினவல்களையும் நிபந்தனையுடன் இரண்டு குழுக்களாகப் பிரிக்கலாம்:
- தரவை மீட்டெடுக்கிறது - இவற்றில் SELECT அறிக்கை அடங்கும் .
- தரவை மாற்றியமைத்தல் - INSERT , UPDATE மற்றும் DELETE அறிக்கைகள் இதில் அடங்கும் .
முதல் குழுவிற்கு, ஏற்கனவே நமக்கு நன்கு தெரிந்த அறிக்கை இடைமுக முறை பயன்படுத்தப்படுகிறது - executeQuery() . கொள்கையளவில், இந்த முறை தொடங்குவதற்கு போதுமானது. உண்மையான வேலையில் நீங்கள் பயன்படுத்த வேண்டிய மிகப் பெரிய சதவீத வினவல்களை இது உள்ளடக்கியது.
நாங்கள் பின்னர் கூடுதல் விருப்பங்களைப் பெறுவோம், ஆனால் இப்போதைக்கு, நினைவில் கொள்ளுமாறு நான் உங்களுக்கு அறிவுறுத்துகிறேன் - நீங்கள் ஒரு அட்டவணையில் இருந்து தரவைப் பெற விரும்பினால், பெரும்பாலான நிகழ்வுகளில் executeQuery () முறை சரியான தேர்வாக இருக்கும்.
இரண்டாவது குழு கோரிக்கைகளுக்கு, நீங்கள் அறிக்கை இடைமுகத்தின் மற்றொரு முறையைப் பயன்படுத்த வேண்டும் - executeUpdate() . ExecuteQuery() முறையைப் போலல்லாமல் , இது ResultSet ஐ வழங்கும், இந்த முறை உங்கள் வினவல் செயல்படுத்தப்படும் போது அட்டவணையில் எத்தனை வரிசைகள் மாற்றப்பட்டது என்பதை உங்களுக்குத் தெரிவிக்கும் ஒரு முழு எண்ணை வழங்குகிறது .
எடுத்துக்காட்டாக, பணியாளர் அறிக்கையிலிருந்து நீக்குதல் (எனவே மிகவும் கவனமாக இருங்கள்) மூலம் அனைத்து வரிசைகளையும் நீக்கலாம் . இந்த வழக்கில், executeUpdate() முறை நீக்கப்பட்ட வரிசைகளின் எண்ணிக்கையை வழங்கும். சில சூழ்நிலைகளில், மாற்றப்பட்ட வரிசைகளின் எண்ணிக்கையை அறிவது தரவுகளுடன் பணிபுரியும் வழிமுறைகளை உருவாக்க பயனுள்ளதாக இருக்கும்.
கொள்கையளவில், இந்த கேள்வியை நாம் முடிக்க முடியும் - நாங்கள் ஏற்கனவே முக்கிய விஷயத்தைப் பார்த்தோம். தரவு பெறுவதற்கு - executeQuery() . தரவை மாற்ற - executeUpdate() .
executeQuery() முறையைப் பயன்படுத்தி பயனர் அட்டவணையில் உள்ள பயனர்களின் எண்ணிக்கையைப் பெறவும் :
ResultSet results = statement.executeQuery("SELECT Count(*) FROM user");
results.next();
int count = results.getInt(1);
executeUpdate()
உங்கள் வினவல் அட்டவணையில் எதையாவது மாற்றும்போது executeUpdate() முறை பயன்படுத்தப்படுகிறது. அது எதுவும் இருக்கலாம்:
- அறிக்கையைப் புதுப்பிக்கவும்
- அறிக்கையைச் செருகவும்
- அறிக்கையை நீக்கு
- அழைப்பு நடைமுறை அறிக்கை
இந்த முறை மாற்றப்பட்ட (அல்லது நீக்கப்பட்ட) வரிசைகளின் எண்ணிக்கையை வழங்குகிறது.
எங்கள் அனைத்து ஊழியர்களின் சம்பளத்தையும் 1000 ரூபிள் அதிகரிக்கும் கோரிக்கையை எழுதுவோம்.
int rowsCount = statement.executeUpdate("UPDATE employee SET salary = salary+1000");
நான் இந்தக் குறியீட்டை இயக்கிய பிறகு, அது எனது டேபிளில் 6 என்ற எண்ணைத் திரும்பப் பெற்றது. எனது டேபிளில் 6 வரிசைகள் இருந்தன. எனவே அனைத்து வரிகளும் மாற்றப்பட்டுள்ளன.
செயல்படுத்த()
சில நேரங்களில் உங்கள் வாழ்க்கையில் நீங்கள் என்ன கோரிக்கையை நிறைவேற்ற வேண்டும் என்று உங்களுக்குத் தெரியாத சூழ்நிலைகள் ஏற்படலாம் - ஒரு தேர்வு அல்லது தரவு மாற்றம். இந்த வழக்கில், ஜேடிபிசியின் படைப்பாளிகள் அதற்கு மற்றொரு பொதுவான முறையைச் சேர்த்துள்ளனர் - செயல்படுத்து() .
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() முறை இப்படித்தான் பயன்படுத்தப்படுகிறது.