gin中使用GORM操作mysql数据库

Go 复制代码
package models

import (
	"fmt"

	"gorm.io/driver/mysql"
	"gorm.io/gorm"
)

var DB *gorm.DB
var err error

func init() {
	dsn := "root:root@tcp(127.0.0.1:3306)/gin?charset=utf8mb4&parseTime=True&loc=Local"
	DB, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
	if err != nil {
		fmt.Println(err)
	}
}
Go 复制代码
package models

type User struct {
	Id       int
	Username string
	Age      int
	Email    string
	AddTime  int
}

func (User) TableName() string {
	return "user"
}

crud:

Go 复制代码
func (con UserController) Index(c *gin.Context) {
	//增加
	user := models.User{
		Username: "qq",
		Age:      20,
	}
	models.DB.Create(&user)
	//查询
	userList := []models.User{}
	models.DB.Where("age>18").Find(&userList)
	c.JSON(http.StatusOK, gin.H{
		"result": userList,
	})
	//修改
	userFind := models.User{Id: 1}
	models.DB.Find(&userFind)
	userFind.Username = "哈哈"
	models.DB.Save(&userFind)
	//另一种修改
	user1 := models.User{}
	models.DB.Model(&user1).Where("id =?", 2).Update("username", "update")
	//删除
	userDelete := models.User{Id: 5}
	models.DB.Delete(&userDelete)
	userDelete1 := models.User{}
	models.DB.Where("username=?", "qq").Delete(&userDelete1)
}

crud以及使用原生sql查询

Go 复制代码
		navList := []models.Nav{}
		models.DB.Find(&navList)
		c.JSON(200, gin.H{
			"result": navList,
		})
	navList := []models.Nav{}
	models.DB.Where("id>3").Find(&navList)
	c.JSON(200, gin.H{
		"result": navList,
	})
	var a = 3
	var b = 9
	navList := []models.Nav{}
	models.DB.Where("id>? and id<?", a, b).Find(&navList)
	c.JSON(200, gin.H{
		"result": navList,
	})
		navList := []models.Nav{}
		models.DB.Where("id in(?)", []int{1, 5, 6}).Find(&navList)
		c.JSON(200, gin.H{
			"result": navList,
		})
	navList := []models.Nav{}
	models.DB.Where("title like ?", "%会%").Find(&navList)
	c.JSON(200, gin.H{
		"result": navList,
	})
	navList := []models.Nav{}
	models.DB.Where("id between ? and ?", 3, 10).Find(&navList)
	c.JSON(200, gin.H{
		"result": navList,
	})
	navList := []models.Nav{}
	models.DB.Where("id=?", 2).Or("id=?", 3).Find(&navList)
	c.JSON(200, gin.H{
		"result": navList,
	})
		navList := []models.Nav{}
		models.DB.Select("id,title").Find(&navList)
		c.JSON(200, gin.H{
			"result": navList,
		})
	navList := []models.Nav{}
	models.DB.Order("id desc").Order("sort asc").Offset(2).Limit(2).Find(&navList)
	c.JSON(200, gin.H{
		"result": navList,
	})
	navList := []models.Nav{}
	var num int64
	models.DB.Find(&navList).Count(&num)
	c.JSON(200, gin.H{
		"result": num,
	})
	navList := []models.Nav{}
	var num int
	models.DB.Exec("delete from nav where id=?", 2)
	models.DB.Exec("update nav set status=? where id=?", 0, 3)
	models.DB.Raw("select * from nav").Scan(&navList)
	models.DB.Raw("select count(*) from nav").Scan(&num)
	c.JSON(200, gin.H{
		"result": navList,
		"re":     num,
	})

xxxx为结构体里子表的名

相关推荐
geinvse_seg2 分钟前
【MySQL】 基本查询(上)
android·数据库·mysql
Pro_er10 分钟前
保姆级教程——手把手教会你如何在Linux上安装Redis
数据库
man201710 分钟前
基于java的ssm+JSP+MYSQL的九宫格日志网站(含LW+PPT+源码+系统演示视频+安装说明)
java·开发语言·mysql
binnnngo25 分钟前
Spring Boot集成PageHelper:轻松实现数据库分页功能
数据库·spring boot·后端·mybatis·pagehelper
GIS程序媛—椰子26 分钟前
【数据库系统原理】Ch2 关系数据库
数据库
南棱笑笑生1 小时前
20250321在荣品的PRO-RK3566开发板的buildroot系统下使用ll命令【直接编译进IMG】
linux·服务器·数据库
多喝热水2341 小时前
MySQL表的增加、查询、修改、删除的基础操作
数据库·mysql
ConFig.1 小时前
Mysql数据库基础
数据库·mysql
Lfsd1 小时前
gin中间件学习笔记
学习·中间件·gin
打工人你好1 小时前
SQLite 查询数据库属性
数据库·sqlite