基础GORM操作 | 青训营

111 阅读1分钟

链接MySQL

dsn := "root:yyc05253344@tcp(127.0.0.1:3306)/test?charset=utf8&parseTime=True&loc=Local"  
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})  
if err != nil {  
    panic("failed to connect database")  
}

其中,dsn的格式一般为用户名:密码@tcp(ip:port)/数据库名?charset=编码&parseTime=True&loc=Local,运行后便于mysql的相关数据库成功连接。

自动迁移

db.AutoMigrate(&Product{})

自动迁移仅仅会创建表,添加缺少列和索引,并且不会改变现有列的类型或删除未使用的列以保护数据

添加数据

添加单条数据

db.Create(&Product{Code: "D42", Price: 100})
db.Create(&Product{Code: "C42", Price: 100})

这是利用struct进行增加,运行后所连接的数据库表中便会添加一条code为D42,Price为100的行。除此之外,还可以利用map添加。

image.png

删除数据

删除单条数据

db.Where("Code LIKE ?", "D42").Delete(&Product{})

其中LIKE也可以换为=号,并且要注意Product{}前要添加&号,否则会报错。 image.png

上图所示即为删除后navicat中表的情况,可以看到code为D42的delete_at从Null变成了删除的时间

修改数据

修改单条数据

db.Model(&Product{}).Where("Code = ?", "C42").Update("Price", 200)

对Code为C42的行数据进行修改,修改内容为将Price的值改为200

image.png 从上图可以看到code为C42的行price变为了200