Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Welche Ausführungsfunktion sollte ich in MySQL Connector/C++ verwenden?

Jede der drei Funktionen hat eine spezifische Verwendung, die aus ihrem Rückgabetyp erraten werden kann.

ausführen

Diese Funktion ist die generischste. Es gibt einen booleschen Wert zurück, der wahr ist, wenn die Abfrage mehrere Ergebnisse zurückgibt, oder falsch, wenn die Abfrage entweder nichts oder einen Aktualisierungszähler zurückgibt.

Dies ist die Funktion, die Sie verwenden sollten, wenn Sie nur eine so generisch wie möglich verwenden möchten.

Wenn es wahr zurückgibt, sollten Sie ResultSet * getResultSet() verwenden um die Ergebnisse zu erhalten.
Wenn es falsch zurückgibt, sollten Sie uint64_t getUpdateCount() verwenden um die Anzahl der aktualisierten Zeilen zu erhalten.

Abfrage ausführen

Diese Funktion gibt direkt ein ResultSet zurück was für SELECT nützlich ist Anweisungen und geht davon aus, dass tatsächlich eine Ergebnismenge zurückgegeben werden muss.

Es entspricht dem Aufruf von execute() gefolgt von getResultSet() .

Sie sollten diese Funktion verwenden, wenn Sie wissen, dass Sie SQL-Code verwenden, der Ergebnisse wie Zeilen zurückgibt.

Update ausführen

Diese Funktion gibt einen ganzzahligen Wert zurück, der für UPDATE nützlich ist Anweisungen und geht davon aus, dass ein Aktualisierungszähler zurückgegeben werden muss.

Es entspricht dem Aufruf von execute() gefolgt von getUpdateCount() , obwohl die Rückgabetypen aus irgendeinem Grund unterschiedlich sind (int vs. uint64_t).

Dies ist die Funktion, die Sie verwenden müssen, wenn Sie SQL-Anweisungen ausführen, die Daten ändern, und Sie wissen müssen, ob einige Daten geändert wurden.

Also,

der vereinheitlichte ist tatsächlich execute , mit denen beliebiges SQL ausgeführt und das Ergebnis entsprechend behandelt werden kann, während die beiden anderen praktische Wrapper sind, wenn Sie wissen, welche Art von Abfrage Sie ausführen.

Da Sie in Ihrem Fall einen Wrapper um die SQL-Sprache schreiben, weiß jede Ihrer Funktionen, welche Art von Anweisung sie ausführen wird, sodass Sie durch Verwendung der Komfortfunktionen kürzeren Code schreiben können.

Zum Beispiel:

insert(), update(), delete() ---> executeUpdate()
select()                     ---> executeQuery()