首頁 > 後端開發 > Golang > 主體

如何用 Golang 連接遠端資料庫?

WBOY
發布: 2024-06-01 20:31:59
原創
929 人瀏覽過

透過 Go 標準函式庫 database/sql 包,可以連接到 MySQL、PostgreSQL 或 SQLite 等遠端資料庫:建立包含資料庫連接資訊的連接字串。使用 sql.Open() 函數開啟資料庫連線。執行 SQL 查詢和插入操作等資料庫操作。使用 defer 關閉資料庫連線以釋放資源。

如何用 Golang 连接远程数据库?

如何用 Golang 連接遠端資料庫

Golang 是一款功能強大的程式語言,可以輕鬆連接到遠端資料庫。本教學將介紹如何使用 Go 標準函式庫 database/sql 套件連接到 MySQL、PostgreSQL 和 SQLite 等遠端資料庫。

必備條件

  • Golang 1.16 或更高版本
  • 遠端資料庫(如MySQL、PostgreSQL 或SQLite)

#連接字串

首先,我們需要建立一個連接字串,該字串包含連接到資料庫所需的資訊。以下是如何建立不同資料庫的連接字串:

MySQL:

"user:password@tcp(host:port)/dbname"
登入後複製

PostgreSQL:

"user=username password=password host=address port=port dbname=database"
登入後複製

# SQLite:

"path/to/sqlite.db"
登入後複製

其中,userpasswordhostportdbname 是特定於資料庫的。

連接資料庫

使用database/sql 套件連接到資料庫:

import (
    "database/sql"
    _ "github.com/go-sql-driver/mysql" // Import MySQL driver
    _ "github.com/lib/pq" // Import PostgreSQL driver
    _ "github.com/mattn/go-sqlite3" // Import SQLite driver
)

func main() {
    // Create a connection string
    connStr := "user:password@tcp(host:port)/dbname"

    // Open the database connection
    db, err := sql.Open("mysql", connStr)
    if err != nil {
        panic(err)
    }
    defer db.Close()  // Close the connection when the function returns
}
登入後複製

實戰案例

以下是一個使用MySQL 資料庫的簡單範例:

package main

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql" // Import MySQL driver
)

func main() {
    // Connect to the database
    db, err := sql.Open("mysql", "root:@/test")
    if err != nil {
        panic(err)
    }
    defer db.Close() // Close the connection when the function returns

    // Create a table
    query := `CREATE TABLE IF NOT EXISTS users (
        id INT PRIMARY KEY AUTO_INCREMENT,
        username VARCHAR(255) NOT NULL,
        password VARCHAR(255) NOT NULL
    );`
    _, err = db.Exec(query)
    if err != nil {
        panic(err)
    }

    // Insert a record into the table
    query = `INSERT INTO users (username, password) VALUES (?, ?)`
    stmt, err := db.Prepare(query)
    if err != nil {
        panic(err)
    }
    _, err = stmt.Exec("admin", "password")
    if err != nil {
        panic(err)
    }

    // Retrieve the record from the table
    query = `SELECT * FROM users WHERE id = ?`
    var id int
    var username string
    var password string
    err = db.QueryRow(query, 1).Scan(&id, &username, &password)
    if err != nil {
        panic(err)
    }
    fmt.Println("ID:", id, "Username:", username, "Password:", password)
}
登入後複製

以上是如何用 Golang 連接遠端資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!