golang?gorm實現(xiàn)get請求查詢案例測試
更新時間:2022年04月16日 09:07:55 作者:Jeff的技術棧
這篇文章主要為大家介紹了golang?gorm實現(xiàn)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()
// 測試數(shù)據(jù)
//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實現(xiàn)get請求查詢案例測試的詳細內(nèi)容,更多關于golang gorm測試get請求查詢的資料請關注腳本之家其它相關文章!
相關文章
go mutex互斥鎖使用Lock和Unlock方法占有釋放資源
Go號稱是為了高并發(fā)而生的,在高并發(fā)場景下,勢必會涉及到對公共資源的競爭,當對應場景發(fā)生時,我們經(jīng)常會使用 mutex 的 Lock() 和 Unlock() 方法來占有或釋放資源,雖然調(diào)用簡單,但 mutex 的內(nèi)部卻涉及挺多的,本文來好好研究一下2023-09-09
使用gRPC實現(xiàn)獲取數(shù)據(jù)庫版本
這篇文章主要為大家詳細介紹了如何使用gRPC實現(xiàn)獲取數(shù)據(jù)庫版本,文中的示例代碼講解詳細,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學習一下2023-12-12
golang進程內(nèi)存控制避免docker內(nèi)oom
這篇文章主要為大家介紹了golang進程內(nèi)存控制避免docker內(nèi)oom示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10

