栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

从 Go 连接到 MySQL 的推荐方法是什么?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从 Go 连接到 MySQL 的推荐方法是什么?

有一些驱动程序可用,但您应该只考虑那些实现数据库/sql API 的驱动程序

  • 它提供了一个干净有效的语法,
  • 它确保您可以在不更改代码的情况下稍后更改驱动程序,除了导入和连接。

MySQL 有两个快速可靠的驱动程序:

  • 我的MySQL
  • Go-MySQL-驱动程序

我已经在生产中使用了它们,程序运行了数月,连接数以百万计而没有失败。

go-wiki 上列出了其他 SQL 数据库驱动程序。

使用 MyMySQL 时导入:

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

使用 Go-MySQL-Driver 时导入:

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

使用 MyMySQL 连接和关闭:

con, err := sql.Open("mymysql", database+"/"+user+"/"+password)defer con.Close()// here you can use the connection, it will be closed when function returns

使用 Go-MySQL-Driver 连接和关闭:

con, err := sql.Open("mysql", store.user+":"+store.password+"@/"+store.database)defer con.Close()

选择一行:

row := con.QueryRow("select mdpr, x, y, z from sometable where id=?", id)cb := new(SomeThing)err := row.Scan(&cb.Mdpr, &cb.X, &cb.Y, &cb.Z)

选择多行并构建一个包含结果的数组:

rows, err := con.Query("select a, b from item where p1=? and p2=?", p1, p2)if err != nil { }items := make([]*SomeStruct, 0, 10)var ida, idb uintfor rows.Next() {    err = rows.Scan(&ida, &idb)    if err != nil { }    items = append(items, &SomeStruct{ida, idb})}

插入 :

_, err = con.Exec("insert into tbl (id, mdpr, isok) values (?, ?, 1)", id, mdpr)

你会发现在 Go 中使用 MySQL 是一种愉快的体验:我从来没有遇到过问题,我的服务器运行了几个月没有错误或泄漏。大多数函数只采用可变数量的参数这一事实减轻了许多语言中乏味的任务。

请注意,如果将来您需要使用另一个 MySQL 驱动程序,您只需更改一个 go 文件中的两行:执行导入的行和打开连接的行。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/633283.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号