日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發布時間:2023/12/10 数据库 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 数据库读取一条数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。