Każda z trzech funkcji ma określone zastosowanie, które można odgadnąć na podstawie ich zwracanego typu.
wykonaj
Ta funkcja jest najbardziej ogólna. Zwraca wartość logiczną, która jest wartością true, jeśli zapytanie zwraca wiele wyników, lub false, jeśli zapytanie nie zwraca nic lub liczby aktualizacji.
Jest to funkcja, której będziesz chciał użyć, jeśli chcesz, aby była jak najbardziej ogólna.
Jeśli zwróci true, będziesz chciał użyć ResultSet * getResultSet()
aby uzyskać wyniki.
Jeśli zwróci false, będziesz chciał użyć uint64_t getUpdateCount()
aby uzyskać liczbę zaktualizowanych wierszy.
executeQuery
Ta funkcja bezpośrednio zwraca ResultSet
co jest przydatne dla SELECT
i zakłada, że rzeczywiście istnieje zestaw wyników do zwrócenia.
Jest to równoważne wywołaniu execute()
po którym następuje getResultSet()
.
Użyj tej funkcji, jeśli wiesz, że używasz kodu SQL, który zwraca wyniki, takie jak wiersze.
wykonaj aktualizację
Ta funkcja zwraca wartość całkowitą, która jest przydatna przy UPDATE
oświadczenia i zakłada, że zostanie zwrócona liczba aktualizacji.
Jest to równoważne wywołaniu execute()
po którym następuje getUpdateCount()
, chociaż z jakiegoś powodu typy zwracane są różne (int vs uint64_t).
Jest to funkcja używana podczas wykonywania instrukcji SQL modyfikujących dane i musisz wiedzieć, czy niektóre dane zostały zmodyfikowane.
Tak więc,
zunifikowany to w rzeczywistości execute
, który może być użyty do wykonania dowolnego kodu SQL i odpowiedniej obsługi wyników, podczas gdy dwa pozostałe są wygodnymi opakowaniami, gdy wiesz, jakiego rodzaju zapytanie wykonujesz.
W twoim przypadku, ponieważ piszesz wrapper wokół języka SQL, każda z twoich funkcji wie, jaki rodzaj instrukcji wykona, więc użycie wygodnych funkcji pozwoli ci napisać krótszy kod.
Na przykład:
insert(), update(), delete() ---> executeUpdate()
select() ---> executeQuery()