美文网首页
go连接数据库mysql

go连接数据库mysql

作者: 梁帆 | 来源:发表于2021-03-30 16:41 被阅读0次

    一、相关说明

    首先,要import以下包:

    连接mysql需要导入的包

    main函数中:

    main函数

    defer db.Close()之后,用db.Ping()尝试与数据库建立连接(检验dsn是否正确):

    main函数

    定义的dsn变量:Data Source Name,用于初始化的字符串内容,需要输入本地mysql的用户名密码ip地址以及端口号(一般默认的是3306端口)。dbname即数据库名称,自定义即可,如"sql_demo"。

    sql.Open():调用的是"database/sql"这个包中的函数。参数一是相连接的数据库(我们这里用的是mysql),参数二就是我们上面定义的数据源名称dsn

    db.Close():用来释放掉跟数据库连接相关的资源。要注意defer db.Close()要写在err检验之后,因为如果sql.Open()执行出错,db未能正常初始化,此时没有执行db.Close()函数的价值。

    db.Ping():与数据库建立连接(检验dsn是否正确)。

    二、标准的代码模板

    如下图,通常将连接数据库的过程写成一个函数,这里是initMySQL()函数,返回的是一个error类型,main函数进行调用会做相关err检测。所以initMySQL函数内部的err是直接拿返回值里声明的err拿来定义,不需要用":=";此外,defer db.Close()也该放在main函数中的err检测之后。由于db在initMySQL和main函数中都在使用,所以定义一个全局变量,如下图所示,是一个全局的DB结构体指针:

    全局的db initMySQL()

    db.SetConnMaxLifetime()函数是设置连接存活的最长时间,一般可不写;下面两个db.SetMaxOpenConns()db.SetMaxIdleConns()比较重要,前者表示最大连接数,后者表示最大空闲连接数。

    main()

    相关文章

      网友评论

          本文标题:go连接数据库mysql

          本文链接:https://www.haomeiwen.com/subject/tdybhltx.html