1. 查询结果反射结构体
本文讲解的实例是从mysql查询过来的数据如何反射到结构体字段,具体实现方法如下代码;
代码目录:
-common
—common.go //是封装的代码
代码的封装:
代码的测试:
import (
"fmt"
"github.com/student/1129/common"
)
//Product Product定义一个结构体
type Product struct {
ID int64 `json:"id" sql:"id"`
ProductClass string `json:"ProductClass" sql:"ProductClass"`
ProductImage string `json:"ProductImage" sql:"productImage"`
ProductURL string `json:"ProductUrl" sql:"productUrl" `
}
func main() {
//这块是模拟mysql获取单条的数据反射到结构体
data := map[string]string{"id": "1", "ProductClass": "blog", "productName": "5lmh.com", "productNum": "40", "productImage": "http://www.5lmh.com/", "productUrl": "http://www.5lmh.com/"}
productResult := &Product{}
common.DataToStructByTagSql(data, productResult)
fmt.Println(*productResult)
//这块是模拟mysql获取所有的数据反射到结构体
{"id": "2", "ProductClass": "blog", "productName": "5lmh.com", "productNum": "40", "productImage": "http://www.5lmh.com/", "productUrl": "http://www.5lmh.com/"},
}
var productArray []*Product
for _, v := range Alldata {
Allproduct := &Product{}
common.DataToStructByTagSql(v, Allproduct)
productArray = append(productArray, Allproduct)
}
for _, vv := range productArray {
fmt.Println(vv)
}