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

通过 go 标准库 database/sql 包,可以连接到 mysql、postgresql 或 sqlite 等远程数据库:创建包含数据库连接信息的连接字符串。使用 sql.open() 函数打开数据库连接。执行 sql 查询和插入操作

通过 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"

登录后复制

其中,user、password、host、port 和 dbname 是特定于数据库的。

连接数据库

使用 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 连接远程数据库?的详细内容,更多请关注叮当号网其它相关文章!

文章来自互联网,只做分享使用。发布者:叮当号,转转请注明出处:https://www.dingdanghao.com/article/487323.html

(0)
上一篇 2024-05-15 08:00
下一篇 2024-05-15 08:40

相关推荐

联系我们

在线咨询: QQ交谈

邮件:442814395@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信公众号