首页 >后端开发 >Golang >从 Go 连接到 MySQL 的最佳方式是什么?

从 Go 连接到 MySQL 的最佳方式是什么?

Barbara Streisand
Barbara Streisand原创
2024-12-19 05:30:09729浏览

What's the Best Way to Connect to MySQL from Go?

从 Go 连接到 MySQL 的首选协议

当寻找可靠的方法从 Go 与 MySQL 数据库建立连接时,出现了许多库:潜在的解决方案。然而,评估这些库的成熟度和持续维护仍然是一个挑战。对于那些寻求简单且广泛采用的方法的人,提供了以下建议。

推荐的库实现数据库/sql API

数据库/sql API 充当在 Go 中使用 SQL 数据库的首选接口。此 API 提供:

  • 清晰高效的语法
  • 与各种驱动程序的兼容性,无需更改代码即可无缝切换(导入和连接处理除外)

两个快速可靠的驱动程序实现此 API是:

  • MyMySQL
  • Go-MySQL-Driver

这些驱动程序经证明可以可靠地处理大容量连接,在生产环境中提供一致的性能.

示例用法MyMySQL

import (
    "database/sql"
    _ "github.com/ziutek/mymysql/godrv"
)

func main() {
    // Username, password, and database details are placeholders
    db, err := sql.Open("mymysql", "database/user/password")
    if err != nil {
        // Handle error
    }

    // Perform database operations

    db.Close()
}

Go-MySQL-Driver 的示例用法

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

func main() {
    // Username, password, and database details are placeholders
    db, err := sql.Open("mysql", "user:password@/database")
    if err != nil {
        // Handle error
    }

    // Perform database operations

    db.Close()
}

数据库操作

以下操作演示了如何使用 MySQL Go:

  • 选择单行:
var cb SomeThing
err := con.QueryRow("select ...").Scan(&cb.Mdpr, &cb.X, &cb.Y, &cb.Z)
  • 选择多行放入切片:
var items []*SomeStruct
for rows.Next() {
    err = rows.Scan(&ida, &idb)
    items = append(items, &SomeStruct{ida, idb})
}
  • 插入一个record:
_, err = con.Exec("insert into ...")

Go 中的 MySQL 集成高效可靠,可长时间稳定运行。数据库/sql API 的灵活性可实现驱动程序的无缝切换,而不会中断应用程序逻辑。

以上是从 Go 连接到 MySQL 的最佳方式是什么?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn