• gorm的使用以及错误记录


    package main
    import (
    	   "fmt"
    	    "github.com/jinzhu/gorm"
    	    "github.com/sirupsen/logrus"
            _ "github.com/jinzhu/gorm/dialects/sqlite"
            "encoding/json"
            _ "reflect"
    
    )
    
    type Product struct {
    	gorm.Model
    	Code string
    	Price uint
    }
    
    func main() {
    	fmt.Println("in main")
    	db,err :=gorm.Open("sqlite3","test.db")
    	if err!=nil{
    		panic("数据库连接失败")
    	}
    	defer db.Close()
    	//创建
    	db.AutoMigrate(&Product{})
        product:=&Product{Code: "L123",Price:1000}
    
        json_p,err:= json.Marshal(product)
            if err != nil {
        }
        logrus.Infof("json_p %v",string(json_p))
       //使用where的时候,后面需要使用Find指定当前表的model,也就是结构体。
        result:=db.Where("code=?","L123").Find(product)
       //go  type interface {} is interface with no method问题解决
        logrus.Infof("result %v",result.Value.(*Product).Price)
    	db.First(product,1)
    	db.First(product,"code = ?","L123")
    	db.Model(product).Update("Price",3000)
    	db.Delete(product)
    }
    

    go type interface {} is interface with no methods
    因为返回的是interface类型,需要做转换才能使用
    result.Value.(Product) 就是将interface{}专为Product之后再获取其Price字段的值。

  • 相关阅读:
    prometheus+alertmanage+grafana安装部署
    HAproxy
    redis安装部署
    rsync+inotify实现实时同步
    简单的计算功能,还需要优化
    python3配置文件的增删改查,记录一下
    一个简单的购物商城,记录一下。
    python函数参数
    python list内部功能记录
    python3 str各个功能记录
  • 原文地址:https://www.cnblogs.com/c-x-a/p/12275087.html
Copyright © 2020-2023  润新知