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 数据库读取一条数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: gain_trickler_3202.e
- 下一篇: nutch mysql solr_Nut