golang?gorm實(shí)現(xiàn)get請(qǐng)求查詢案例測(cè)試
更新時(shí)間:2022年04月16日 09:07:55 作者:Jeff的技術(shù)棧
這篇文章主要為大家介紹了golang?gorm實(shí)現(xiàn)get請(qǐng)求查詢案例測(cè)試,
案例
package main
import (
_ "github.com/go-sql-driver/mysql"
"github.com/jinzhu/gorm"
"github.com/gin-gonic/gin"
)
//班級(jí)-學(xué)生:一對(duì)多
type Class struct {
gorm.Model
ClassName string
Students []Student //班級(jí)有多個(gè)學(xué)生
}
//學(xué)生-學(xué)生卡:一對(duì)一
type Student struct {
gorm.Model
StudentName string
ClassID uint //學(xué)生屬于一個(gè)班級(jí)
IDCard IDCard // 一個(gè)學(xué)生只有一個(gè)學(xué)生卡
Teachers []Teacher `gorm:"many2many:Student_Teacher;"` //一個(gè)學(xué)生有多個(gè)老師
}
type IDCard struct {
gorm.Model
StudentID uint //一張卡只屬于一個(gè)學(xué)生
Money int //卡里余額
}
//老師-學(xué)生:多對(duì)多
type Teacher struct {
gorm.Model
TeacherName string
Students []Student `gorm:"many2many:Student_Teacher;"` //老師教多個(gè)學(xué)生
}
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()
// 測(cè)試數(shù)據(jù)
//i := IDCard{
// Money:99,
//}
//s := Student{
// StudentName:"chary",
// IDCard : i,
//}
//c := Class{
// ClassName:"超神學(xué)院",
// 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")
}
查詢班級(jí)get請(qǐng)求

查詢學(xué)生get請(qǐng)求

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

