Gorm 中的增删改查
- 一个神奇的,对开发人员友好的 Golang ORM 库
警告:当删除一条记录的时候,你需要确定这条记录的主键有值,GORM会使用主键来删除这条记录。如果主键字段为空,GORM会删除模型中所有的记录。
package main
import (
"github.com/jinzhu/gorm"
_ "github.com/jinzhu/gorm/dialects/sqlite"
)
var a = gorm.DB{
}
// 首先设置一个结构体
type Product struct {
gorm.Model
Code string
Price uint
}
func main() {
// 连接 sqlite3
DB, err := gorm.Open("sqlite3", "test.db")
if err != nil {
// 抛出异常
panic("数据库连接异常")
}
// 打开数据库需要记得关闭
defer DB.Close()
// 自动检查 Product 结构是否变化,变化则进行迁移
DB.AutoMigrate(&Product{
})
// 增加 (插入)
DB.Create(&Product{
Code: "1111", Price: 100})
// 查找p
var product Product
SelectDemo(DB, product)
UpdateDemo(DB, product)
/*
警告:当删除一条记录的时候,你需要确定这条记录的主键有值,GORM会使用主键来删除这条记录。如果主键字段为空,GORM会删除模型中所有的记录。
*/
//DeleteDemo(DB, product)
}
// 查询
func SelectDemo(DB *gorm.DB, product Product) {
/*
获取第一条记录,按照主键排序
select * from products order by id limit 1
*/
DB.First