golang学习笔记(21)-gin与gorm组合实现简单的增删查改

gin与gorm组合实现简单的增删查改

纯实验记录

目录

  • gin与gorm组合实现简单的增删查改
    • 文件目录展示
    • 数据库连接,实验表的创建
    • Create功能
    • 查询功能
    • Update功能
    • Delete功能

文件目录展示

golang学习笔记(21)-gin与gorm组合实现简单的增删查改_第1张图片

数据库连接,实验表的创建

建立模型

type Users struct {
	gorm.Model
	Username string `form:"username"`
	Password string `form:"password"`
}

form标签用于gin中绑定操作

连接数据库,创建表

var db *gorm.DB

func OpenDB() {
	dsn := "root:adss123@tcp(127.0.0.1:3306)/gin_gorm_test?charset=utf8mb4&parseTime=True&loc=Local"
	open, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
	db = open
	if err != nil {
		log.Fatal(err)
	}
	fmt.Printf("成功%v", db)
}

func CreateTable() {
	OpenDB()
	db.AutoMigrate(&model.Users{})

}

golang学习笔记(21)-gin与gorm组合实现简单的增删查改_第2张图片

Create功能

gin代码

func Register() {
	r := Router()
	r.POST("/register", RegisterMethod)
	r.Run()
}
func RegisterMethod(c *gin.Context) {
	var user model.Users
	c.ShouldBind(&user)
	gorm.CreateInfo(&user)
}

gorm代码

func CreateInfo(Any any) {
	OpenDB()
	db.Create(Any)
}

实验结果
golang学习笔记(21)-gin与gorm组合实现简单的增删查改_第3张图片
golang学习笔记(21)-gin与gorm组合实现简单的增删查改_第4张图片

查询功能

gin

func Query() {
	r := Router()
	r.GET("/query/", QueryMethod)
	r.Run()
}
func QueryMethod(c *gin.Context) {
	var user model.Users
	username := c.Query("username")
	fmt.Printf("_________________________%v\n", username)
	gorm.QueryInfo(&user, username)
	c.JSON(200, gin.H{
		"user": user,
	})
}

gorm

func QueryInfo(Any any, username string) any {
	OpenDB()
	db.Where("username=?", username).Find(Any)
	return Any
}

golang学习笔记(21)-gin与gorm组合实现简单的增删查改_第5张图片

Update功能

gin

func Update() {
	r := Router()
	r.PUT("/update", UpdateMethod)
	r.Run()
}
func UpdateMethod(c *gin.Context) {
	var user model.Users
	c.ShouldBind(&user)
	gorm.Update(user)
}


gorm

func Update(user1 model.Users) {
	OpenDB()
	var user2 model.Users
	db.Where("username=?", user1.Username).Find(&user2)
	user2.Password = user1.Password
	db.Save(&user2)
}


golang学习笔记(21)-gin与gorm组合实现简单的增删查改_第6张图片
在这里插入图片描述

Delete功能

gin

func Delete() {
	r := Router()
	r.DELETE("/delete/:username", DeleteMethod)

	r.Run()
}
func DeleteMethod(c *gin.Context) {
	username := c.Param("username")
	gorm.Delete(username)
}

gorm

func Delete(username string) {
	OpenDB()
	var user model.Users
	db.Where("username=?", username).Delete(&user)
}

golang学习笔记(21)-gin与gorm组合实现简单的增删查改_第7张图片

golang学习笔记(21)-gin与gorm组合实现简单的增删查改_第8张图片

你可能感兴趣的:(golang,学习,gin)