将数据库连接存储在全局变量中

我正在使用此处提供的用于 Golang 的 MySQL 驱动程序


https://github.com/go-sql-driver/mysql


我正在尝试做的一件事是将数据库变量存储在全局连接中。根据文档, sql.Open() 应该返回一个指向 DB 结构的指针,所以我尝试将其存储为


var db *DB

然而,这导致了错误


undefined: DB

我尝试的下一件事是查看 MySQL 驱动程序的源代码,我在这里找到了一段代码https://github.com/go-sql-driver/mysql/blob/master/driver.go


func (d MySQLDriver) Open(dsn string) (driver.Conn, error) {

所以,我试图将变量保存为 driver.Conn - 但是,我无法(不正确的导入)。我也无法导入驱动程序。


我尝试的最后一件事是使用反射来显示变量的名称


package main


    import (

        "fmt"

        "reflect"

)


import "database/sql"

import _ "github.com/go-sql-driver/mysql"


func main() {

        db, _ := sql.Open("mysql", "root:password@/Tracker")

        yt := reflect.TypeOf(db).Kind()

        fmt.Printf("%T: %s\n", yt, yt)

}

不幸的是,这也不起作用 - 它显示为指针,而不是它实际指向的变量类型。


我现在不知该如何解决。在此先感谢您的帮助!


幕布斯7119047
浏览 197回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go