Go语言第5天 - 数据库连接

开发环境为macOS 10.13.4,所以暂时不涉及到Windows下的操作。


1. 安装mySql

首先从官网下载 mySql,我选择的是“macOS 10.13 (x86, 64-bit), DMG Archive”这个版本。点击下载后他提示需要登录,但其实点击左下角的“No thanks, just start my download”就可以直接下载了。

下载完成后点击安装即可

两种密码加密方式都可,如果没有其他原因,建议选择上面Strong的加密方式
设置root账户的密码

安装完毕后启动mySql服务


一些mySql的基本配置都在这里
此处mySql服务已启动

添加环境变量。
如果以下操作有疑义,直接用文本编辑软件打开“你的用户/.bash_profile”文件,添加“PATH=$PATH:/usr/local/mysql/bin”到文件尾,并在terminal中执行“source ~/.bash_profile”。

//terminal终端中,打开.bash_profile文件
vim ~/.bash_profile
//文件编辑中,添加以下文本到文件末尾
PATH=$PATH:/usr/local/mysql/bin
//terminal终端中,刷新配置
source ~/.bash_profile

以上操作都完成后,在终端中输入

mysql --version

如果看到以下输出,则代表mySql安装成功

mysql  Ver 8.0.11 for macos10.13 on x86_64 (MySQL Community Server - GPL)

2. go语言的mySql驱动安装

Go-MySQL-Driver
直接在终端中输入

go get -u github.com/go-sql-driver/mysql

进行安装。

3. 数据库连接

新建dbClient.go文件(以下代码用到了其他文件中定义的常量与struct,自己运行需要稍作修改)

package base

//_"third/go-sql-driver/mysql" 仅导入,促使内部初始化
import (
    "database/sql"
    _"third/go-sql-driver/mysql"
    "config"
)

var defaultDBClient *DBClient;
///默认数据库连接
func DefaultDBClient() *DBClient {
    if defaultDBClient != nil {
        return defaultDBClient;
    }
    defaultDBClient = &DBClient{config.DataBaseURL,config.DataBaseUserName,config.DataBasePassword,config.DataBaseDBName,nil};
    return defaultDBClient;
}


//--------------------------------------------------------------------
type DBClient struct {
    ///数据库地址
    dataBaseURL string
    ///用户名
    userName string
    ///密码
    password string
    //数据库名称
    dataBaseName string
    ///数据库实例
    DB *sql.DB
}

///连接数据库
func (client *DBClient) Connect() *Error  {
    db,err := sql.Open("mysql",client.userName+":"+client.password+"@tcp("+client.dataBaseURL+")/");
    if err != nil {
        return MakeErrorWithText(ERROR_DATABASE_CONNECT,err.Error());
    }
    //open不会去获得数据库连接有效性,当执行数据库操作的时候才会去连接,可以通过ping来验证数据库连接的有效性
    err2 := db.Ping();
    if err2 != nil {
        return MakeErrorWithText(ERROR_DATABASE_CONNECT,err2.Error());
    }
    client.DB = db;
    return nil;
}

///断开数据库连接
func (client *DBClient) Disconnect() *Error {
    if client.DB == nil {
        return MakeError(ERROR_DATABASE_DISCONNECT);
    }
    err := client.DB.Close();
    if err != nil {
        return MakeErrorWithText(ERROR_DATABASE_DISCONNECT,err.Error());
    }
    client.DB = nil;
    return nil;
}


在main函数中调用

func main() {
    var error = base.DefaultDBClient().Connect();
    if error != nil {
        println(error.Error());
    } else {
        println("连接成功");
    }
}

运行后就可以看到控制台输出“连接成功”。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容