go 语言学习笔记之(MySQL)[0001]

 

As The Titile

本文是我学习 Go 语言的学习笔记之一.

PostgreSQL 下载:

https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

太慢了…

改使用 MySQL 数据库了

连接数据库

下载 MySQL Go 语言的驱动.

参考地址: https://github.com/go-sql-driver/mysql

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

用法

Go MySQL 驱动是 database/sql/driver 接口的实现, 使用时只需导入驱动和 database/sql API 即可.

例如: 使用 mysql 作为 driverName, 一个 DSN 作为 dataSourceName 如下:

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

db, err := sql.Open("mysql", "user:password@tcp(ip:port)/dbname")


DSN(Data Source Name)

[username[:password]@][protocol[(address)]]/dbname[?param1=value1&...&paramN=valueN]

连接数据库

程序在对数据库执行任何操作之前,都需要先与数据库建立连接。

sql.DB 结构是一个数据库句柄(handle),它代表的是一个包含了0 个或者 多个数据库连接的连接池(pool),这个连接池由 sql 包管理。程序可以通过调用 Open 函数,并将响应的数据库驱动名字(driver name)和数据源名称 (data source name)传递给它来建立与数据库的连接。

需要注意的是,Open 函数在执行的时候,并不会真正地与数据库践行连接,它甚至都不会检查用户给定的参数,Open 函数的真正作用是设置好连接数据库所需要的各个结构,并以惰性的方式,等到真正需要时才建立响应的数据库连接。

此外,因为 sql.DB 只是一个句柄并不是实际的连接,而这个句柄代表的是一个会自动对连接进行管理的连接池,所以尽管用户可以手动关闭 sql.DB,但是在实际中通常并不需要这样做。

例如:

var DB *sql.DB

func init() {
    var err error
    DB, err = sql.Open("mysql", dsn);
    if err != nil {
        panic(err)
    }
}

SQL 关系映射器

$ go get "github.com/jmoiron/sqlx"

« EOF »

If you like TeXt, don’t forget to give me a star :star2:.