GORM基本实例
注意:
- 本文以MySQL数据库为例,讲解GORM各项功能的主要使用方法。
- 往下阅读本文前,你需要有一个能够成功连接上的MySQL数据库实例。
Docker快速创建MySQL实例
很多同学如果不会安装MySQL或者懒得安装MySQL,可以使用一下命令快速运行一个MySQL8.0.19实例,当然前提是你要有docker环境…
在本地的13306
端口运行一个名为mysql8019
,root用户名密码为root1234
的MySQL容器环境:
docker run --name mysql8019 -p 13306:3306 -e MYSQL_ROOT_PASSWORD=root1234 -d mysql:8.0.19
在另外启动一个MySQL Client
连接上面的MySQL环境,密码为上一步指定的密码root1234
:
docker run -it --network host --rm mysql mysql -h127.0.0.1 -P13306 --default-character-set=utf8mb4 -uroot -p
创建数据库
在使用GORM前手动创建数据库gorm
:
CREATE DATABASE gorm;
GORM操作MySQL
使用GORM连接上面的db1
进行创建、查询、更新、删除操作。
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
type UserInfo struct {
ID uint
Name string
Gender string
Hobby string
}
func main() {
dsn := "root:@tcp(127.0.0.1:3306)/gorm?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic(err)
}
// 创建表自动迁移, 把结构体和数据表进行对应
db.AutoMigrate(&UserInfo{})
// 创建数据信息
createUserinfo := UserInfo{1, "randyRandy", "man", "code"}
db.Create(&createUserinfo)
// 查询
var u UserInfo
db.First(&u)
fmt.Printf("userInfo:%#v", u)
// 更新
db.Model(&u).Update("hobby", "Python Go code")
fmt.Printf("userInfo:%#v", u)
// 删除
db.Delete(&u)
}