Heim > Artikel > Backend-Entwicklung > Wie führe ich native SQL-Abfragen mit Golang aus?
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.
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 驱动程序 )
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) }
Achten Sie darauf, Benutzer
, Passwort
, Host
hinzuzufügen. port und database
durch die entsprechenden Werte. user
, password
, host
, port
和database
替换为相应的值。
准备 SQL 语句
要准备 SQL 查询,请使用 Prepare
方法:
stmt, err := db.Prepare("SELECT * FROM users WHERE name = ?") if err != nil { log.Fatal(err) }
这将创建一个预编译的 SQL 语句,用于稍后执行。?
占位符表示将在执行期间替换的动态值。
执行 SQL 查询
要使用指定的动态值执行查询,请使用 Query
方法:
rows, err := stmt.Query("John") if err != nil { log.Fatal(err) }
这将返回一个 Rows
对象,它包含查询结果。
处理查询结果
要遍历查询结果,请使用 Scan
SQL-Anweisungen vorbereiten
Um eine SQL-Abfrage vorzubereiten, verwenden Sie die MethodePrepare
: 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) }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 MethodeQuery
: 🎜db.Close()🎜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) } }🎜🎜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!