登录
首页 >  Golang >  Go问答

获取数据库连接的连接字符串

来源:stackoverflow

时间:2024-04-23 20:48:33 278浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《获取数据库连接的连接字符串》,涉及到,有需要的可以收藏一下

问题内容

我正在尝试测试这个功能:

//OpenConnection opens a connection to a MySQL database by `connStr`
// or returns error. If `connStr` is empty, error is returned.
//
// Parameters:
// - `connStr`: the URL of the database to connect to
// - `interpolateParams` : should we interpolate parameters?
//
// Returns:
// - pointer to the database connection
// - any errors that happened during this process
func OpenConnection(connStr string, interpolateParams bool) (*sql.DB, *errors.ErrorSt) {
    if connStr == "" {
        return nil, errors.Database().ReplaceMessage("No database connection string.")
    }
    connStr = connStr + "?parseTime=true&multiStatements=true"
    if interpolateParams {
        connStr += "&interpolateParams=true"
    }

    db, err := sql.Open("mysql", connStr)
    if err != nil {
        return nil, errors.Database().AddDetails(err.Error(), connStr)
    }
    return db, nil
}

对于 interpolateparams 的情况。我正在筛选官方文档,但没有看到从 sql.db 获取连接字符串的简单方法。由于这是单元测试,我当然会使用虚假的连接 url 来访问该函数。

有没有办法从 sql.db 获取连接 url 来检查插值查询字符串?


解决方案


database/sql 主要致力于成为使用 SQL 进行操作的接口。连接字符串通常是特定于驱动程序的,所以我会向您使用的驱动程序寻找如何获取连接字符串的线索在您的情况下,根据顶部的注释判断,您正在使用MySQL,所以我假设您会使用 go-sql-driver/mysql。您可以直接在代码中导入它(而不是使用空白导入)并访问 Config 结构,记录如下:https://github.com/go-sql-driver/mysql/blob/master/dsn.go#L35,它从传递到 sql.Open 的 dsn 中填充

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

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