如何在 Go 中執行原生 SQL 查詢:匯入必要套件(如 database/sql 和資料庫驅動程式)。開啟資料庫連線。使用 db.Prepare 方法準備 SQL 語句。使用 stmt.Query 方法執行查詢,提供動態值。使用 rows.Next 和 rows.Scan 遍歷查詢結果。關閉資料庫連線以釋放資源。
如何在 Golang 中執行原生 SQL 查詢?
Golang 提供了一個強大的 SQL 資料庫包,可讓您使用原生 SQL 查詢與關聯式資料庫進行互動。本教學將指導您如何使用 Golang 執行原生 SQL 查詢,並提供一個實戰案例。
導入必要的套件
首先,您需要導入必要的套件:
import ( "database/sql" _ "github.com/go-sql-driver/mysql" // MySQL 驱动程序 )
注意:不同的資料庫將需要其自己的驅動程序。有關支援的驅動程式的列表,請參閱 [godoc](https://godoc.org/database/sql/driver)。
開啟資料庫連線
接下來,開啟一個資料庫連線:
db, err := sql.Open("mysql", "user:password@tcp(host:port)/database") if err != nil { log.Fatal(err) }
確保將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
方法:
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) }
關閉資料庫連接
最後,關閉資料庫連線以釋放資源:
db.Close()
實戰案例
以下是實戰案例,示範如何向資料庫中插入一筆記錄並取得它:
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) } }
以上是如何使用 Golang 執行原生 SQL 查詢?的詳細內容。更多資訊請關注PHP中文網其他相關文章!