go入门知识

go run 编译并运行.go的文件,但是如果文件中引入了其他的自定义的包,需要先build其他的自定义包
go build 编译包和它的依赖关系
go get url 下载,安装包和它的依赖

连接数据库:

db, err := sql.Open("mysql", "root:password@tcp(127.0.0.1:3306)/xueqiu")

上面第二个一次是用户名:密码,tcp(127.0.0.1:3306)表示连接的方式和对应的ip,xueqiu 表示具体连接的数据库

user@unix(/path/to/socket)/dbname?charset=utf8
user:password@tcp(localhost:5555)/dbname?charset=utf8
user:password@/dbname
user:password@tcp([de:ad:be:ef::ca:fe]:80)/dbname

上面是open里面一共支持的书写格式,包含了tcp和socket通信两种

stmt, err := db.Prepare("SELECT * FROM list where id = ?")表示预编译
rows, err := stmt.Query(1) 执行预编译,获取对应的结果集,之前问号缺少的参数传递过去,也可以直接db.Query获取对应的结果集
Exec函数执行Prepare准备好的sql,传入参数执行update/insert等操作,返回Result数据

Query函数执行Prepare准备好的sql,传入需要的参数执行select操作,返回Rows结果集
for rows.Next() {
var id int
var times int
var symbol string
var item string
var value string
rows.Scan(&id, &symbol, &item, &value, &times)
fmt.Println(symbol)
}

rows.Columns()  : 返回 查询出的列字段名,

func (nt *NullTime) Scan(value interface{}) (err error)  这里是官方手册里面的定义,必须传入一个interface类型的变量

Leave a comment

Your email address will not be published.

*