zoukankan      html  css  js  c++  java
  • Gin gorm

    Gin GORM 多表联查

    package admin
    
    import (
    	"15_gin_demo15/models"
    	"github.com/gin-gonic/gin"
    	"gorm.io/gorm"
    )
    
    type StudentController struct {
    	BaseController
    }
    
    func (con StudentController) Index(c *gin.Context) {
    	1、获取所有的学生信息
    	studentList := []models.Student{}
    	models.DB.Find(&studentList)
    	c.JSON(200, gin.H{
    		"result": studentList,
    	})
    
    	2、获取所有的课程信息
    
    	lessonList := []models.Lesson{}
    	models.DB.Find(&lessonList)
    	c.JSON(200, gin.H{
    		"result": lessonList,
    	})
    
    	3、查询学生信息的时候 展示学生选修的课程
    	studentList := []models.Student{}
    	models.DB.Preload("Lesson").Find(&studentList)
    	c.JSON(200, gin.H{
    		"result": studentList,
    	})
    
    	4、查询张三 以及张三选修了哪些课程
    
    	studentList := []models.Student{}
    	models.DB.Preload("Lesson").Where("name = ?", "张三").Find(&studentList)
    	c.JSON(200, gin.H{
    		"result": studentList,
    	})
    
    	5、查询课程被哪些学生选修了
    
    	lessonList := []models.Lesson{}
    	models.DB.Preload("Student").Find(&lessonList)
    	c.JSON(200, gin.H{
    		"result": lessonList,
    	})
    
    	6、查询计算机网络被哪些学生选修了
    	lessonList := []models.Lesson{}
    	models.DB.Preload("Student").Where("name=?", "计算机网络").Find(&lessonList)
    	c.JSON(200, gin.H{
    		"result": lessonList,
    	})
    
    	7、查询数据指定条件
    	lessonList := []models.Lesson{}
    	models.DB.Preload("Student").Offset(1).Limit(2).Order("id desc").Find(&lessonList)
    	c.JSON(200, gin.H{
    		"result": lessonList,
    	})
    
    	7、张三被开除了  查询课程被哪些学生选修的时候去掉张三
    
    	lessonList := []models.Lesson{}
    	models.DB.Preload("Student", "id != ?", 1).Find(&lessonList)
    	c.JSON(200, gin.H{
    		"result": lessonList,
    	})
    
    	8、张三 李四都被开除了  查询课程被哪些学生选修的时候去掉张三和李四
    
    	lessonList := []models.Lesson{}
    	models.DB.Preload("Student", "id not in (1,2)").Find(&lessonList)
    	c.JSON(200, gin.H{
    		"result": lessonList,
    	})
    
    	9 查看课程被哪些学生选修 要求:学生 id 倒叙输出  自定义预加载 SQL
    	https://gorm.io/zh_CN/docs/preload.html
    
    	lessonList := []models.Lesson{}
    	models.DB.Preload("Student", func(db *gorm.DB) *gorm.DB {
    		return models.DB.Where("id>2").Order("student.id DESC")
    	}).Find(&lessonList)
    	c.JSON(200, gin.H{
    		"result": lessonList,
    	})
    
    }
    

    package admin import ( "15_gin_demo15/models""github.com/gin-gonic/gin""gorm.io/gorm" ) type StudentController struct { BaseController } func (con StudentController) Index(c *gin.Context) { 1、获取所有的学生信息 studentList := []models.Student{} models.DB.Find(&studentList) c.JSON(200, gin.H{ "result": studentList, }) 2、获取所有的课程信息 lessonList := []models.Lesson{} models.DB.Find(&lessonList) c.JSON(200, gin.H{ "result": lessonList, }) 3、查询学生信息的时候 展示学生选修的课程 studentList := []models.Student{} models.DB.Preload("Lesson").Find(&studentList) c.JSON(200, gin.H{ "result": studentList, }) 4、查询张三 以及张三选修了哪些课程 studentList := []models.Student{} models.DB.Preload("Lesson").Where("name = ?", "张三").Find(&studentList) c.JSON(200, gin.H{ "result": studentList, }) 5、查询课程被哪些学生选修了 lessonList := []models.Lesson{} models.DB.Preload("Student").Find(&lessonList) c.JSON(200, gin.H{ "result": lessonList, }) 6、查询计算机网络被哪些学生选修了 lessonList := []models.Lesson{} models.DB.Preload("Student").Where("name=?", "计算机网络").Find(&lessonList) c.JSON(200, gin.H{ "result": lessonList, }) 7、查询数据指定条件 lessonList := []models.Lesson{} models.DB.Preload("Student").Offset(1).Limit(2).Order("id desc").Find(&lessonList) c.JSON(200, gin.H{ "result": lessonList, }) 7、张三被开除了 查询课程被哪些学生选修的时候去掉张三 lessonList := []models.Lesson{} models.DB.Preload("Student", "id != ?", 1).Find(&lessonList) c.JSON(200, gin.H{ "result": lessonList, }) 8、张三 李四都被开除了 查询课程被哪些学生选修的时候去掉张三和李四 lessonList := []models.Lesson{} models.DB.Preload("Student", "id not in (1,2)").Find(&lessonList) c.JSON(200, gin.H{ "result": lessonList, }) 9 查看课程被哪些学生选修 要求:学生 id 倒叙输出 自定义预加载 SQL https://gorm.io/zh_CN/docs/preload.html lessonList := []models.Lesson{} models.DB.Preload("Student", func(db *gorm.DB) *gorm.DB { return models.DB.Where("id>2").Order("student.id DESC") }).Find(&lessonList) c.JSON(200, gin.H{ "result": lessonList, }) }

     

  • 相关阅读:
    创建ROS工程結構
    ubuntu下boot分区空间不足问题的解决方案
    Ubuntu下查看自己的GPU型号
    win+Ubuntu双系统安装和卸载、Ubuntu上OpenCV+ROS环境配置
    Opencv——摄像头设置
    error:Assertion failed ((unsigned)i0 < (unsigned)size.p[0]) in cv::Mat::at
    error: OpenCV Error: Assertion failed (0 <= roi.x && 0 <= roi.width && roi.x + roi.width <= m.cols && 0 <= roi.y && 0 <= roi.height && roi.y + roi.height <= m.rows) in cv::Mat::Mat
    常用的传感器和运动机构
    步进电机与伺服电机
    Opencv——级联分类器(AdaBoost)
  • 原文地址:https://www.cnblogs.com/cheyunhua/p/15773898.html
Copyright © 2011-2022 走看看