切換語言為:簡體

如何使用Go語言連線和運算元據庫?

  • 爱糖宝
  • 2024-06-05
  • 2064
  • 0
  • 0

在Go語言中,連線和運算元據庫通常使用database/sql包,它提供了一個數據庫抽象層,支援多種資料庫引擎,如MySQL、PostgreSQL、SQLite等。下面我將以MySQL為例,詳細講解如何使用Go語言連線和運算元據庫。

1. 安裝MySQL驅動

首先,你需要安裝一個MySQL驅動,以便能夠與MySQL資料庫進行通訊。推薦使用github.com/go-sql-driver/mysql,可以透過以下命令安裝:

go get -u github.com/go-sql-driver/mysql

2. 連線資料庫

使用sql.Open函式建立與MySQL資料庫的連線。該函式接受兩個引數:資料庫驅動名稱和連線字串。連線字串包含了連線資料庫所需的所有資訊,如使用者名稱、密碼、主機名、埠和資料庫名等。

示例程式碼:

package main

import (
 "database/sql"
 "fmt"
 "log"

 _ "github.com/go-sql-driver/mysql"
)

func main() {
 // 定義連線字串
 db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
 if err != nil {
 log.Fatal(err)
 }
 defer db.Close()

 // 驗證連線
 err = db.Ping()
 if err != nil {
 log.Fatal(err)
 }
 fmt.Println("Connected to database successfully!")
}

3. 執行查詢

使用db.Query方法執行SQL查詢,並獲取*sql.Rows結果集。你可以使用rows.Next()方法遍歷結果集,並使用rows.Scan()方法將每行資料掃描到變數中。

示例程式碼:

package main

import (
 "database/sql"
 "fmt"
 "log"

 _ "github.com/go-sql-driver/mysql"
)

func main() {
 // 連線資料庫
 db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
 if err != nil {
 log.Fatal(err)
 }
 defer db.Close()

 // 執行查詢
 rows, err := db.Query("SELECT id, name FROM users")
 if err != nil {
 log.Fatal(err)
 }
 defer rows.Close()

 // 遍歷結果集
 for rows.Next() {
 var id int
 var name string
 err := rows.Scan(&id, &name)
 if err != nil {
 log.Fatal(err)
 }
 fmt.Printf("ID: %d, Name: %s\n", id, name)
 }

 // 檢查遍歷過程中是否出現錯誤
 if err := rows.Err(); err != nil {
 log.Fatal(err)
 }
}

4. 執行插入、更新和刪除操作

使用db.Exec方法執行SQL語句,如插入、更新和刪除操作。db.Exec方法返回一個sql.Result物件,你可以使用它來獲取受影響的行數。

示例程式碼:

package main

import (
 "database/sql"
 "fmt"
 "log"

 _ "github.com/go-sql-driver/mysql"
)

func main() {
 // 連線資料庫
 db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
 if err != nil {
 log.Fatal(err)
 }
 defer db.Close()

 // 插入資料
 _, err = db.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "Alice", 25)
 if err != nil {
 log.Fatal(err)
 }
 fmt.Println("Data inserted successfully!")

 // 更新資料
 _, err = db.Exec("UPDATE users SET age = ? WHERE id = ?", 30, 1)
 if err != nil {
 log.Fatal(err)
 }
 fmt.Println("Data updated successfully!")

 // 刪除資料
 _, err = db.Exec("DELETE FROM users WHERE id = ?", 1)
 if err != nil {
 log.Fatal(err)
 }
 fmt.Println("Data deleted successfully!")
}

以上是使用Go語言連線和操作MySQL資料庫的基本步驟。

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.