Var och en av de tre funktionerna har en specifik användning, som kan gissas från deras returtyp.
kör
Denna funktion är den mest generiska. Den returnerar ett booleskt värde, vilket värde är sant om frågan returnerar flera resultat, eller falskt om frågan returnerar antingen ingenting eller ett uppdateringsantal.
Det här är funktionen du vill använda om du bara vill använda en för att vara så generisk som möjligt.
Om det returnerar sant, vill du använda ResultSet * getResultSet()
för att få resultaten.
Om det returnerar falskt, vill du använda uint64_t getUpdateCount()
för att få antalet uppdaterade rader.
executeQuery
Denna funktion returnerar direkt en ResultSet
vilket är användbart för SELECT
uttalanden och antar att det verkligen finns en resultatuppsättning som ska returneras.
Det motsvarar anropet execute()
följt av getResultSet()
.
Du vill använda den här funktionen när du vet att du använder SQL-kod som returnerar resultat som rader.
körUppdatera
Denna funktion returnerar ett heltalsvärde som är användbart för UPDATE
uttalanden och antar att det finns ett antal uppdateringar som ska returneras.
Det motsvarar anropet execute()
följt av getUpdateCount()
, även om returtyperna av någon anledning är olika (int vs uint64_t).
Det här är funktionen som ska användas när du kör SQL-satser som ändrar data och du behöver veta om vissa data har ändrats.
Så,
den förenade är faktiskt execute
, som kan användas för att exekvera godtycklig SQL och hantera resultatet på rätt sätt, medan de två andra är bekväma omslag när du vet vilken typ av fråga du kör.
I ditt fall, eftersom du skriver ett omslag runt SQL-språket, vet var och en av dina funktioner vilken typ av sats den kommer att köra, så användning av bekvämlighetsfunktionerna gör att du kan skriva kortare kod.
Till exempel:
insert(), update(), delete() ---> executeUpdate()
select() ---> executeQuery()