ప్రకటనలకు పరిచయం
అన్ని SQL ప్రశ్నలను షరతులతో రెండు గ్రూపులుగా విభజించవచ్చు:
- డేటాను తిరిగి పొందడం - వీటిలో SELECT స్టేట్మెంట్ ఉంటుంది .
- డేటాను సవరించడం - వీటిలో ఇన్సర్ట్ , అప్డేట్ మరియు డిలీట్ స్టేట్మెంట్లు ఉన్నాయి .
మొదటి సమూహం కోసం, ఇప్పటికే మనకు తెలిసిన స్టేట్మెంట్ ఇంటర్ఫేస్ పద్ధతి ఉపయోగించబడుతుంది - 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 అడ్డు వరుసలు ఉన్నాయి. కాబట్టి అన్ని లైన్లు మార్చబడ్డాయి.
అమలు ()
మీరు ఏ అభ్యర్థనను అమలు చేయాలో ఖచ్చితంగా తెలియనప్పుడు కొన్నిసార్లు మీ జీవితంలో పరిస్థితులు తలెత్తవచ్చు - ఎంపిక లేదా డేటా మార్పు. ఈ సందర్భంలో, 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);
}
}
ఈ విధంగా అమలులో () పద్ధతి సాధారణంగా ఆచరణలో ఉపయోగించబడుతుంది.
GO TO FULL VERSION