欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

go-mysql查询单条数据_Golang 从 MySQL 数据库读取一条数据

发布时间:2023/12/10 39 豆豆
生活随笔 收集整理的这篇文章主要介绍了 go-mysql查询单条数据_Golang 从 MySQL 数据库读取一条数据 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

刚开始在 sqlx 和 gorm 两者间纠结了半天,准备使用 sqlx 了,看了文档,感觉就是灾难般的文档。

我按照例子硬是没有从 MySQL 读出数据。

又尝试了 gorm,这家伙的文档更加不友好,概念更多。调试了半天,返回的结果 id 永远是 0。我半天没有找到问题。

最终我选择了 database/sql。

http://go-database-sql.org/index.html

参考最友好的一篇使用文档:

https://tutorialedge.net/golang/golang-mysql-tutorial/

测试代码

package main

import (

"database/sql"

"fmt"

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

"github.com/joho/godotenv"

"log"

"os"

)

type KV struct {

id int

key string

value string

updated_at string

}

func main() {

err := godotenv.Load("../.env")

if err != nil {

log.Fatal("Error loading .env file")

}

db_database := os.Getenv("DB_DATABASE")

db_username := os.Getenv("DB_USERNAME")

db_password := os.Getenv("DB_PASSWORD")

db_host := os.Getenv("DB_HOST")

db_port := os.Getenv("DB_PORT")

db, err := sql.Open("mysql",

fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&timeout=5000ms",

db_username, db_password, db_host, db_port, db_database))

if err != nil {

log.Fatal("Error")

}

defer db.Close()

var kv KV

err = db.QueryRow("SELECT id, `key`, value, updated_at FROM kv where id = ?",

2).Scan(&kv.id, &kv.key, &kv.value, &kv.updated_at)

if err != nil {

panic(err.Error())

}

log.Println(kv.id)

log.Println(kv.key)

log.Println(kv.value)

log.Println(kv.updated_at)

}

执行结果:

> go run main.go

2019/10/23 19:29:33 2

2019/10/23 19:29:33 translate_color_name

2019/10/23 19:29:33 4

2019/10/23 19:29:33 2019-09-08 16:31:51

需要注意的地方:

定义 struct

结果使用 Scan

总结

以上是生活随笔为你收集整理的go-mysql查询单条数据_Golang 从 MySQL 数据库读取一条数据的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。