案例
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请求
查询学生get请求
以上就是golang gorm实现get请求查询案例测试的详细内容,更多关于golang gorm测试get请求查询的资料请关注其它相关文章!