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请求
查询学生get请求
来源:https://www.cnblogs.com/guyouyin123/p/14115591.html
0
投稿
猜你喜欢
- 前言这篇博文发布后,有朋友问有没有SQL server版本的,现在有了==》传送门一、场景再现在一个erp进销存系统或0A等其他系统中,如果
- 前言for...in 是Python程序员使用最多的语句,for 循环用于迭代容器对象中的元素,这些对象可以是列表、元组、字典、集合、文件,
- 本文实例讲述了Python整型运算之布尔型、标准整型、长整型操作。分享给大家供大家参考,具体如下:#coding=utf8def integ
- 1.创建应用django-admin startproject cloudmscd cloudmspython manage.py star
- 如下所示:import pandas as pd #显示所有列pd.set_option('display.max_columns&
- 1.索引问题索引是数据库优化中最常用也是最重要的手段之一,通过索引通常可以帮助用户解决大多数 的SQL性能问题。本章节将对MySQL中的索引
- Pythonpython 真的太好用了,但是它真的好慢啊(哭死) ; C++ 很快,但是真的好难写啊,此生能不碰它就不碰它。老天啊,有没有什
- mysql 之通过配置文件链接数据库配置文件jdbc.properties##MySQLdriver=com.mysql.jdbc.Driv
- 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理以下文章来源于菜J学Py
- 本文实例讲述了JS简单实现DIV相对于浏览器固定位置不变的方法。分享给大家供大家参考,具体如下:<!DOCTYPE HTML PUBL
- 前言:Druid 连接池是阿里巴巴开源的数据库连接池项目,Druid 为监控而生,内置强大的监控功能,监控特性不影响性能,官网地址为:htt
- 应用目录下apps.pyclass OperationConfig(AppConfig): name = 'operat
- 视图代码lis = []#设置一个空列表用来存放发送的验证码,用来验证def yzm1(): res1 = &qu
- 新人小菜鸟又来写博客啦!!!没人表示不开心~~(>_<)~~今天我来弄一个简单的关键词提取的代码文章内容关键词的提取分为三大步:
- 安装前的准备1.python的安装和配置在Window下:在开始菜单中找到运行输入cmd或直接搜索cmd点击进入,输入python,如果出现
- 本文实例讲述了VB.NET调用MySQL存储过程并获得返回值的方法。分享给大家供大家参考。具体实现方法如下:Dim myConnection
- 本文实例讲述了vue.js使用v-model实现表单元素(input) 双向数据绑定功能。分享给大家供大家参考,具体如下:v-model 一
- 一、利用xpath进行(全程使用)driver.find_element_by_xpath()二、代码部分与图片内容打开淘宝网站,点击登录,
- 1. 介绍torch.norm()是对输入的tensor求对应的范数。tensor的范数有以下三种:1.1 p-范数1.2 Frobeniu
- 本文实例为大家分享了JavaScript实现点击出现子菜单的具体代码,供大家参考,具体内容如下首先让我们看一下点击出现子菜单的效果如下图:点