Heim > Backend-Entwicklung > Golang > Wie führe ich native SQL-Abfragen mit Golang aus?

Wie führe ich native SQL-Abfragen mit Golang aus?

WBOY
Freigeben: 2024-06-01 10:00:58
Original
625 Leute haben es durchsucht

So führen Sie native SQL-Abfragen in Go aus: Importieren Sie die erforderlichen Pakete (z. B. Datenbank/SQL und Datenbanktreiber). Öffnen Sie eine Datenbankverbindung. Bereiten Sie SQL-Anweisungen mit der db.Prepare-Methode vor. Verwenden Sie die Methode stmt.Query, um Abfragen durchzuführen und dynamische Werte bereitzustellen. Verwenden Sie rows.Next und rows.Scan, um die Abfrageergebnisse zu durchlaufen. Schließen Sie die Datenbankverbindung, um Ressourcen freizugeben.

如何使用 Golang 执行原生 SQL 查询?

Wie führe ich native SQL-Abfragen in Golang aus?

Golang bietet ein leistungsstarkes SQL-Datenbankpaket, das Ihnen die Interaktion mit relationalen Datenbanken über native SQL-Abfragen ermöglicht. Dieses Tutorial führt Sie durch die Ausführung nativer SQL-Abfragen mit Golang und bietet ein praktisches Beispiel.

Importieren Sie die erforderlichen Pakete

Zuerst müssen Sie die erforderlichen Pakete importieren:

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql" // MySQL 驱动程序
)
Nach dem Login kopieren

Hinweis: Verschiedene Datenbanken erfordern ihre eigenen Treiber. Eine Liste der unterstützten Treiber finden Sie unter [godoc](https://godoc.org/database/sql/driver).

Datenbankverbindung öffnen

Als nächstes öffnen Sie eine Datenbankverbindung:

db, err := sql.Open("mysql", "user:password@tcp(host:port)/database")
if err != nil {
    log.Fatal(err)
}
Nach dem Login kopieren

Achten Sie darauf, Benutzer, Passwort, Host hinzuzufügen. < Ersetzen Sie code>port und database durch die entsprechenden Werte. user, password, host, portdatabase替换为相应的值。

准备 SQL 语句

要准备 SQL 查询,请使用 Prepare 方法:

stmt, err := db.Prepare("SELECT * FROM users WHERE name = ?")
if err != nil {
    log.Fatal(err)
}
Nach dem Login kopieren

这将创建一个预编译的 SQL 语句,用于稍后执行。?占位符表示将在执行期间替换的动态值。

执行 SQL 查询

要使用指定的动态值执行查询,请使用 Query 方法:

rows, err := stmt.Query("John")
if err != nil {
    log.Fatal(err)
}
Nach dem Login kopieren

这将返回一个 Rows 对象,它包含查询结果。

处理查询结果

要遍历查询结果,请使用 Scan

SQL-Anweisungen vorbereiten

Um eine SQL-Abfrage vorzubereiten, verwenden Sie die Methode Prepare:

for rows.Next() {
    var id int
    var name string
    if err := rows.Scan(&id, &name); err != nil {
        log.Fatal(err)
    }
    fmt.Printf("ID: %d, Name: %s\n", id, name)
}
Nach dem Login kopieren

Dadurch wird eine vorkompilierte SQL-Anweisung für die spätere Ausführung erstellt. ? Platzhalter stellt einen dynamischen Wert dar, der während der Ausführung ersetzt wird.

SQL-Abfrage ausführen

Um eine Abfrage mit angegebenen dynamischen Werten auszuführen, verwenden Sie die Methode Query: 🎜
db.Close()
Nach dem Login kopieren
🎜Dadurch wird ein Rows-Objekt zurückgegeben, das die Abfrage enthält Ergebnis. 🎜🎜🎜Abfrageergebnisse verarbeiten🎜🎜🎜Um die Abfrageergebnisse zu durchlaufen, verwenden Sie die Methode Scan: 🎜
package main

import (
    "database/sql"
    "fmt"

    _ "github.com/go-sql-driver/mysql" // MySQL 驱动程序
)

func main() {
    db, err := sql.Open("mysql", "user:password@tcp(host:port)/database")
    if err != nil {
        log.Fatal(err)
    }
    defer db.Close()

    stmt, err := db.Prepare("INSERT INTO users (name) VALUES (?)")
    if err != nil {
        log.Fatal(err)
    }

    _, err = stmt.Exec("Jane")
    if err != nil {
        log.Fatal(err)
    }

    stmt, err = db.Prepare("SELECT * FROM users WHERE name = ?")
    if err != nil {
        log.Fatal(err)
    }

    rows, err := stmt.Query("Jane")
    if err != nil {
        log.Fatal(err)
    }

    for rows.Next() {
        var id int
        var name string
        if err := rows.Scan(&id, &name); err != nil {
            log.Fatal(err)
        }
        fmt.Printf("ID: %d, Name: %s\n", id, name)
    }
}
Nach dem Login kopieren
🎜🎜Schließen Sie die Datenbankverbindung. 🎜🎜🎜Schließen Sie abschließend die Datenbankverbindung, um Ressourcen freizugeben: 🎜 rrreee🎜🎜Übungsfall 🎜🎜🎜Das Folgende ist ein praktischer Fall, der zeigt, wie man einen Datensatz in die Datenbank einfügt und erhält: 🎜rrreee

Das obige ist der detaillierte Inhalt vonWie führe ich native SQL-Abfragen mit Golang aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage