Gorm配合MySQL使用,db.Save 不能插入数据到数据库
相关代码
type Like struct {
ID int `gorm:"primary_key"`
Ip string `gorm:"type:varchar(20);not null;index:ip_idx"`
Ua string `gorm:"type:varchar(256);not null;"`
Title string `gorm:"type:varchar(128);not null;index:title_idx"`
CreatedAt time.Time
}
func CreateUa(c *gin.Context) {
var like Like
like = Like{Ip:c.PostForm("ip"),Ua:c.PostForm("ua"),Title:c.PostForm("title")}
//db.Create(&like)
db.Save(&like)
c.JSON(http.StatusCreated, gin.H{
"status": http.StatusCreated,
"message": "Like record created successfully!",
"LikeId": like.ID})
}
数据库连接
var(
db *gorm.DB
err error
sqlConnection = "username:password.@(127.0.0.1:3309)/gotest?charset=utf8&parseTime=True&loc=Local"
)
db,err = gorm.Open("mysql",sqlConnection)
if err != nil{
panic("failed to connect database")
}
defer db.Close()
执行POST操作
http://localhost:8080/v1/createua?ip="192.168.0.8"&ua="UU888"&title="This is 8th record"
执行POST请求,数据库中只有ID和CreateAt字段的值,其他三个字段的数据没有插入到数据库
摘自:http://doc.gorm.io/crud.html#...
注意,Save是更新全部字段,但是对于数据库来说总得知道哪条数据要更新吧(id来指定),看你的场景应该是想要用Create,而不是Save