快速入门
[[toc]]
介绍
Goravel 路由模块可以使用 facades.DB
进行操作,facades.DB
是知名 ORM 框架 go-gorm/gorm 的一个实例,使用方法与 go-gorm/gorm
完全一致。
每一个数据表都对应有一个「模型」进行交互,模型文件保存在 app/models
文件夹中。
在开始之前,请在 .env
文件中配置数据库链接信息,并确认 config/database.go
的默认配置。
模型定义
可以根据框架自带的模型文件 app/models/user.go
创建自定义模型。在 app/models/user.go
文件中 struct
嵌套了 orm.Model
与 orm.SoftDeletes
两个框架自带结构体,他们分别定义了 id, created_at //创建时间, updated_at //更新时间
与 deleted_at //软删除
,可以直接使用。
模型约定
- 模型使用大驼峰进行命名;
- 使用模型的复数形式「蛇形命名」来作为表名;
查询
facades.DB.First(&user, 10)
// SELECT * FROM users WHERE id = 10;
facades.DB.First(&user, "10")
// SELECT * FROM users WHERE id = 10;
facades.DB.Find(&users, []int{1,2,3})
// SELECT * FROM users WHERE id IN (1,2,3);
创建
user := User{Name: "Jinzhu", Age: 18, Birthday: time.Now()}
result := facades.DB.Create(&user)
更新
facades.DB.First(&user)
user.Name = "jinzhu 2"
user.Age = 100
facades.DB.Save(&user)
// UPDATE users SET name='jinzhu 2', age=100, birthday='2016-01-01', updated_at = '2013-11-17 21:34:10' WHERE id=111
facades.DB.Model(&User{}).Where("active = ?", true).Update("name", "hello")
// UPDATE users SET name='hello', updated_at='2013-11-17 21:34:10' WHERE active=true;
facades.DB.Model(&user).Updates(User{Name: "hello", Age: 18, Active: false})
// UPDATE users SET name='hello', age=18, updated_at = '2013-11-17 21:34:10' WHERE id = 111;
删除
facades.DB.Delete(&email)
// DELETE from emails where id = 10;
facades.DB.Where("name = ?", "jinzhu").Delete(&email)
// DELETE from emails where id = 10 AND name = "jinzhu";
facades.DB.Delete(&User{}, 10)
// DELETE FROM users WHERE id = 10;
更多使用方法
详见 go-gorm/gorm