1. 查询结果反射结构体

    本文讲解的实例是从mysql查询过来的数据如何反射到结构体字段,具体实现方法如下代码;

    代码目录:

    -common

    —common.go //是封装的代码

    代码的封装:

    代码的测试:

    1. import (
    2. "fmt"
    3. "github.com/student/1129/common"
    4. )
    5. //Product Product定义一个结构体
    6. type Product struct {
    7. ID int64 `json:"id" sql:"id"`
    8. ProductClass string `json:"ProductClass" sql:"ProductClass"`
    9. ProductImage string `json:"ProductImage" sql:"productImage"`
    10. ProductURL string `json:"ProductUrl" sql:"productUrl" `
    11. }
    12. func main() {
    13. //这块是模拟mysql获取单条的数据反射到结构体
    14. data := map[string]string{"id": "1", "ProductClass": "blog", "productName": "5lmh.com", "productNum": "40", "productImage": "http://www.5lmh.com/", "productUrl": "http://www.5lmh.com/"}
    15. productResult := &Product{}
    16. common.DataToStructByTagSql(data, productResult)
    17. fmt.Println(*productResult)
    18. //这块是模拟mysql获取所有的数据反射到结构体
    19. {"id": "2", "ProductClass": "blog", "productName": "5lmh.com", "productNum": "40", "productImage": "http://www.5lmh.com/", "productUrl": "http://www.5lmh.com/"},
    20. }
    21. var productArray []*Product
    22. for _, v := range Alldata {
    23. Allproduct := &Product{}
    24. common.DataToStructByTagSql(v, Allproduct)
    25. productArray = append(productArray, Allproduct)
    26. }
    27. for _, vv := range productArray {
    28. fmt.Println(vv)
    29. }