链接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添加。
删除数据
删除单条数据
db.Where("Code LIKE ?", "D42").Delete(&Product{})
其中LIKE也可以换为=号,并且要注意Product{}前要添加&号,否则会报错。
上图所示即为删除后navicat中表的情况,可以看到code为D42的delete_at从Null变成了删除的时间
修改数据
修改单条数据
db.Model(&Product{}).Where("Code = ?", "C42").Update("Price", 200)
对Code为C42的行数据进行修改,修改内容为将Price的值改为200
从上图可以看到code为C42的行price变为了200