将struct映射到mysql表,并将行绑定到struct

这是我使用 go-sql-driver 的第一个脚本。


我的 mysql 表(产品)看起来像:


id int

name varchar(255)

IsMatch tinyint(1)

created datetime

我想简单地从表中加载一行,并将其绑定到一个结构。


到目前为止我有这个:


package main


import (

    "database/sql"

    "fmt"

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

)


type Product struct {

    Id    int64

  Name  string

  IsMatch ??????????

  Created ?????

}


func main() {

    fmt.Printf("hello, world!\n")


    db, err := sql.Open("mysql", "root:@/product_development")

    defer db.Close()


    err = db.Ping()

    if err != nil {

        panic(err.Error()) // proper error handling instead of panic in your app

    }


    rows, err := db.Query("SELECT * FROM products where id=1")

    if err != nil {

        panic(err.Error()) // proper error handling instead of panic in your app

    }


}

现在我需要:


1. What datatype in Go do I use for tinyint and datetime?

2. How to I map the rows to a Product struct?


慕无忌1623718
浏览 328回答 2
2回答

幕布斯6054654

如何将行映射到 Product 结构? 可以使用reflect绑定table rows in db到 a struct,自动匹配值,没有Hard-Code容易出错的长sql字符串。这是一个轻量级演示:sqlmapper
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go