爱摸鱼的Demon
首页
前端知识
后端技术
工程实践
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

爱摸鱼的Demon

我的地盘,欢迎光临。
首页
前端知识
后端技术
工程实践
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • C#

  • Golang

    • Go

    • Gin

    • GORM

      • Gorm初始化
      • Gorm之增删改查
        • 1、查
        • 2、增
        • 3、改
        • 4、删
      • Gorm之查询进阶版
      • Gorm之根据外键关联表
      • Gorm之关联进阶版
      • Gorm之事务
  • 后端技术
  • Golang
  • GORM
DemonW-X
2025-11-13
目录

Gorm之增删改查

# GORM的增删改查

有一个user表如下:

初始化表:

//Gorm mysql初始化详见《Gorm初始化》
//model.go
type User struct { //默认表名是users
	Id       int
	Username string
	Age      int
	Email    string
	AddTime  int
}

// 配置操作数据库表名称
func (User) TableName() string {
	return "user"
}


//controller.go
// 控制器继承
type UserController struct {
	BaseController
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

# 1、查

func (con UserController) Index(c *gin.Context) {
	//查询全部数据
	userList := []models.User{} //创建切片
	models.DB.Find(&userList) //Find查询所有
	c.JSON(http.StatusOK, gin.H{
		"result": userList,
	}) //输出json格式
}
func (con NavController) Detail(c *gin.Context) {
	//查询单条数据
  //写法1:
	//userResult := models.User{Id: 1}
  
  //写法2:
	userResult := models.User{}
	models.DB.Where("id=?", 1).Find(&userResult) //先写条件Where 再写查询Find
	c.JSON(http.StatusOK, gin.H{
		"result": userResult,
	})
}//输出json格式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

# 2、增

func (con UserController) Add(c *gin.Context) {
	user := models.User{
		Username: "itying",
		Age:      22,
		Email:    "itying@gmail.com",
		AddTime:  int(models.GetUnix()),
	} //增加的信息格式
	models.DB.Create(&user) //create创建插入
	fmt.Println(user) //打印插入数据信息
  //还有一种方法是使用原始sql(models.DB.Exec 执行insert sql语句),但是太冗长了,算了知道就行[狗头]
	c.String(http.StatusOK, "增加数据成功!")
}
1
2
3
4
5
6
7
8
9
10
11
12

增加数据成功!

# 3、改

func (con UserController) Update(c *gin.Context) {
	//保存所有字段

	//方式1:优选
	//user := models.User{Id: 7}
	//models.DB.Find(&user)
	//user.Username = "hahaha"
	//models.DB.Save(&user)
	//方式2:
	//user := models.User{}
	//models.DB.Model(&user).Where("id=?", 7).Update("username", "itying")
	//方式3:
	models.DB.Exec("update user set age=? where id=?", 20, 1)
	c.String(http.StatusOK, "修改数据成功!")
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

修改数据成功!

# 4、删

func (con UserController) Delete(c *gin.Context) {
  //方法1:
	//user := models.User{Id: 7}
	//models.DB.Delete(&user)
  //方法2:
	models.DB.Exec("DELETE FROM user WHERE id=?", 5)
	c.String(http.StatusOK, "删除数据成功!")
}
1
2
3
4
5
6
7
8

删除数据成功!

编辑 (opens new window)
Gorm初始化
Gorm之查询进阶版

← Gorm初始化 Gorm之查询进阶版→

最近更新
01
Gorm之事务
11-13
02
Gorm之关联进阶版
11-13
03
Gorm之根据外键关联表
11-13
更多文章>
Theme by Vdoing | Copyright © 2022-2025 爱摸鱼的Demon | 桂ICP备2024034950号 | 桂公网安备45142202000030
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式