网络编程
位置:首页>> 网络编程>> Go语言>> golang gorm实现get请求查询案例测试

golang gorm实现get请求查询案例测试

作者:Jeff的技术栈  发布时间:2024-05-09 10:09:31 

标签:golang,gorm,get,请求,测试查询

案例

package main
import (
  _ "github.com/go-sql-driver/mysql"
  "github.com/jinzhu/gorm"
  "github.com/gin-gonic/gin"
)
//班级-学生:一对多
type Class struct {
  gorm.Model
  ClassName string
  Students []Student   //班级有多个学生
}
//学生-学生卡:一对一
type Student struct {
  gorm.Model
  StudentName   string
  ClassID uint  //学生属于一个班级
  IDCard IDCard  // 一个学生只有一个学生卡
  Teachers []Teacher `gorm:"many2many:Student_Teacher;"` //一个学生有多个老师
}
type IDCard struct {
  gorm.Model
  StudentID uint  //一张卡只属于一个学生
  Money int  //卡里余额
}
//老师-学生:多对多
type Teacher struct {
  gorm.Model
  TeacherName string
  Students []Student `gorm:"many2many:Student_Teacher;"` //老师教多个学生
}
func main() {
  db, _ := gorm.Open("mysql", "root:admin123@/beego_test?charset=utf8&parseTime=True&loc=Local")
  db.AutoMigrate(&Class{},&Student{},&IDCard{},Teacher{})
  defer db.Close()
  // 测试数据
  //i := IDCard{
  // Money:99,
  //}
  //s := Student{
  // StudentName:"chary",
  // IDCard : i,
  //}
  //c := Class{
  // ClassName:"超神学院",
  // Students: []Student{s},
  //}
  //t := Teacher{
  // TeacherName:"雅典啦老师",
  // Students: []Student{s},
  //}
  //
  //_ = db.Create(&c).Error
  //_ = db.Create(&t).Error
  r:=gin.Default()
  r.POST("/student", func(c *gin.Context) {
      var student Student
      _ = c.BindJSON(&student)
      db.Create(&student)
  })
  r.GET("/student/:ID", func(c *gin.Context) {
     id := c.Param("ID")
     var student Student
     _ = c.BindJSON(&student)
     db.Preload("Teachers").Preload("IDCard").First(&student,"id=?",id)
     c.JSON(200,gin.H{
        "msg":student,
     })
  })
  r.GET("/class/:ID", func(c *gin.Context) {
     id := c.Param("ID")
     var class Class
     _ = c.BindJSON(&class)
     db.Preload("Students").Preload("Students.Teachers").First(&class,"id=?",id)

c.JSON(200,gin.H{
        "msg":class,
     })
  })
  _ = r.Run(":8080")
}

查询班级get请求

golang gorm实现get请求查询案例测试

查询学生get请求

golang gorm实现get请求查询案例测试

来源:https://www.cnblogs.com/guyouyin123/p/14115591.html

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com