gorm的使用以及错误记录
Posted c-x-a
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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字段的值。
以上是关于gorm的使用以及错误记录的主要内容,如果未能解决你的问题,请参考以下文章