Heim >Backend-Entwicklung >Golang >Go SQL: Wann sollten „DB.Exec()', „DB.Query()' und vorbereitete Anweisungen verwendet werden?

Go SQL: Wann sollten „DB.Exec()', „DB.Query()' und vorbereitete Anweisungen verwendet werden?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-14 04:04:10186Durchsuche

Go SQL: When to Use `DB.Exec()`, `DB.Query()`, and Prepared Statements?

Warum überhaupt *DB.exec() oder vorbereitete Anweisungen in Golang verwenden?

Das Go SQL-Paket stellt Methoden zum Ausführen von SQL-Anweisungen bereit. Es gibt zwei Hauptmethoden: DB.Exec() und DB.Query().

DB.Exec() wird verwendet, um SQL-Anweisungen auszuführen, die keine Zeilen zurückgeben, wie z INSERT-, UPDATE- und DELETE-Anweisungen. DB.Query() wird zum Ausführen von SQL-Anweisungen verwendet, die Zeilen zurückgeben, wie z. B. SELECT-Anweisungen.

In dem Buch, das Sie zitieren, heißt es: „Wenn ein Funktionsname Query enthält, ist dies der Fall.“ Entwickelt, um eine Frage an die Datenbank zu stellen, und gibt eine Reihe von Zeilen zurück, auch wenn diese leer sind. Anweisungen, die keine Zeilen zurückgeben, sollten keine Abfragefunktionen verwenden Exec()."

Das stimmt, aber es ist nicht die ganze Geschichte. DB.Exec() kann auch zum Ausführen von SQL-Anweisungen verwendet werden, die Zeilen zurückgeben. DB.Exec() gibt jedoch die Anzahl der von der Anweisung betroffenen Zeilen zurück, während DB.Query() ein *Rows-Objekt zurückgibt, das zum Durchlaufen verwendet werden kann Zeilen im Ergebnissatz.

Also, wann sollten Sie DB.Exec() verwenden und wann sollten Sie verwenden DB.Query()?

Verwenden Sie DB.Exec(), wenn Sie eine SQL-Anweisung ausführen müssen, die keine Zeilen zurückgibt, und Sie das wissen möchten Anzahl der von der Anweisung betroffenen Zeilen.

Verwenden Sie DB.Query(), wenn Sie eine SQL-Anweisung ausführen müssen, die zurückgibt Zeilen und Sie möchten über die Zeilen im Ergebnissatz iterieren.

Warum vorbereitete Anweisungen verwenden?

Vorbereitete Anweisungen können die Leistung Ihrer SQL-Abfragen verbessern. Wenn Sie eine Anweisung vorbereiten, kompiliert der Datenbankserver die Anweisung und speichert die kompilierte Anweisung im Speicher. Dies bedeutet, dass der Datenbankserver die Anweisung nicht jedes Mal neu kompilieren muss, wenn Sie sie ausführen.

Um vorbereitete Anweisungen zu verwenden, können Sie die Methode DB.Prepare() aufrufen. Diese Methode verwendet eine SQL-Anweisung als Argument und gibt ein *Stmt-Objekt zurück. Anschließend können Sie die vorbereitete Anweisung ausführen, indem Sie die Methode Stmt.Exec() oder Stmt.Query() aufrufen.

Ob Sie vorbereitete Anweisungen verwenden sollten oder nicht, hängt von den Leistungsmerkmalen Ihrer Anwendung ab. Wenn Sie dieselbe SQL-Anweisung mehrmals ausführen, kann die Verwendung einer vorbereiteten Anweisung die Leistung Ihrer Anwendung verbessern.

Das obige ist der detaillierte Inhalt vonGo SQL: Wann sollten „DB.Exec()', „DB.Query()' und vorbereitete Anweisungen verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn