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为结构体里子表的名
