gorm 增删改查示例
时间: 2023-07-08 16:31:35 浏览: 153
golang gorm增删改查db.Model db.Where db.Table
好的,下面是gorm的增删改查示例:
首先,我们需要定义一个结构体来映射我们的数据表:
```go
type User struct {
ID uint `gorm:"primary_key"`
Name string `gorm:"type:varchar(20);not null"`
Age uint8 `gorm:"not null"`
Email string `gorm:"type:varchar(100);unique_index"`
Password string `gorm:"type:varchar(255);not null"`
}
```
接下来,我们需要创建一个数据库连接并进行初始化:
```go
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
dsn := "user:password@tcp(127.0.0.1:3306)/database_name?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
panic(err)
}
// 自动迁移数据表,如果数据表不存在则会自动创建
err = db.AutoMigrate(&User{})
if err != nil {
panic(err)
}
```
创建成功后,我们可以进行增删改查操作了:
1. 新增数据
```go
user := &User{
Name: "Tom",
Age: 18,
Email: "tom@example.com",
Password: "123456",
}
// 创建记录
result := db.Create(user)
if result.Error != nil {
panic(result.Error)
}
```
2. 查询数据
```go
var users []User
// 查找所有记录
result := db.Find(&users)
if result.Error != nil {
panic(result.Error)
}
// 根据条件查找记录
result = db.Where("age > ?", 18).Find(&users)
if result.Error != nil {
panic(result.Error)
}
```
3. 更新数据
```go
// 根据主键更新记录
result := db.Model(&User{}).Where("id = ?", 1).Update("age", 20)
if result.Error != nil {
panic(result.Error)
}
```
4. 删除数据
```go
// 根据主键删除记录
result := db.Delete(&User{}, 1)
if result.Error != nil {
panic(result.Error)
}
```
以上就是gorm的增删改查示例,希望对你有所帮助。
阅读全文