登录
首页 >  Golang >  Go问答

gorm的问题,为了全局使用db,我定义了全局变量,如果分成多个文件,db对象如何获取?

来源:SegmentFault

时间:2023-01-19 09:40:42 493浏览 收藏

知识点掌握了,还需要不断练习才能熟练运用。下面golang学习网给大家带来一个Golang开发实战,手把手教大家学习《gorm的问题,为了全局使用db,我定义了全局变量,如果分成多个文件,db对象如何获取?》,在实现功能的过程中也带大家重新温习相关知识点,温故而知新,回头看看说不定又有不一样的感悟!

问题内容

package main

import (
    "fmt"
    "github.com/gin-gonic/gin"
    "gorm.io/driver/mysql"
    "gorm.io/gorm"
    "log"
)

var db *gorm.DB
var err error

func main() {
    r := gin.Default()
    dsn := "root:Nexon8888@tcp(127.0.0.1:3306)/iapplus?charset=utf8mb4&parseTime=True&loc=Local"
    db, err = gorm.Open(mysql.Open(dsn), &gorm.Config{})
    if err!=nil {
        log.Fatal("数据库连接错误")
    }
    r.GET("/ping/:name", ping)
    r.Run("127.0.0.1:8081") // listen and serve on 0.0.0.0:8080
}

func ping(c *gin.Context) {
    //c.JSON(200, gin.H{
    //    "message": "pong",
    //})
    var user UserModel
    db.First(&user)
    fmt.Println(user.ID)
    fmt.Println(user.Mobile)
    c.String(200, "Hello World"+c.Param("name"))
}

正确答案

定义一个model 包,或者 const 的包

image.png

然后在 main 里面导入这个 model

初始化链接上数据库后,就可以
model.DB = db

然后其他包只需要引入 model , 再 model.DB 就可以愉快的使用了

image.png

image.png

终于介绍完啦!小伙伴们,这篇关于《gorm的问题,为了全局使用db,我定义了全局变量,如果分成多个文件,db对象如何获取?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表