GORM简介
GORM是一个go语言的全功能的ORM库,并支持如下特性:
- 关联 (拥有一个,拥有多个,属于,多对多,多态,单表继承)
- 事务,嵌套事务,Save Point,Rollback To to Saved Point
- 批量插入,FindInBatches,Find/Create with Map,使用 SQL 表达式、Context Valuer 进行 CRUD
- ......
GORM的安装
go get -u gorm.io/gorm
go get gorm.io/driver/mysql # mysql的驱动
然后在项目文件中引入GORM即可
import "gorm.io/gorm"
import "gorm.io/driver/mysql"
至此,我们的GORM库就安装好了 🤗
基本使用(CRUD)
连接到数据库:
type User struct {
gorm.Model
Name string `json:"name"`
Password string `json:"password"`
}
func initMySql() {
var err error
username := viper.GetString("database.mysql.username")
password := viper.GetString("database.mysql.password")
host := viper.GetString("database.mysql.host")
port := viper.GetInt("database.mysql.port")
dbname := viper.GetString("database.mysql.dbname")
dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local", username, password, host, port, dbname)
MySqlDB, err = gorm.Open(mysql.Open(dsn))
if err != nil {
panic(err)
}
}
增: 向数据库中插入数据
MySqlDB.Model(&User{}).Create(&User{Name: "test",Password: "test",})
删:从数据库中删除一条数据
MySqlDB.Model(&User{}).Delete(&User{Name: "test",})
查:从数据库中查询数据:
var u User
MySqlDB.Model(&User{}).Where("name = ?", "test").First(&u)
MySqlDB.Model(&User{}).Where("name = ?", "test").Find(&u)
改:修改数据:
MySqlDB.Model(&User{}).Where("name = ?", "test").Update("password", "test2")
总的来说,GORM是一款功能强大、易用性高的ORM库,非常适用于新手和初学者,同时也支持很多高级特性,非常适合用于Go语言开发中。