MySQL driver(驱动) liblbmysql for Go1
Go语言1.0出来之后,原来可用的MySQL驱动在新版本上基本不可用了,于是这几天自己写了个简单的MySQL的驱动,暂不支持prepare,没有implement sql/driver. 或许有能用的上的朋友,所以分享出来. 先介绍用法,后面提供下载链接.
先直接上例子
import (
"log"
"liblbmysql"
)
func main() {
settings := make(map[string]interface{})
settings["host"] = "localhost"
settings["port"] = 3306
settings["uname"] = "ivan"
settings["pass"] = "******"
settings["dbname"] = "test"
settings["charset"] = "utf8"
conn, err := liblbmysql.Connect(settings)
if err != nil {
log.Fatal("Connect to MySQL error: %v", err)
}
var qr *liblbmysql.QueryResult
qr, err = conn.ExecuteFetch("select * from ivan")
if err != nil {
log.Printf("query error: %v", err)
} else {
for {
m := qr.FetchMap()
if m != nil {
log.Printf("row map: %v\n", m)
} else {
break
}
}
}
qr.Free()
conn.Close()
}
- 库名: package liblbmysql, 因此将 liblbmysql.a 保存到对应的pkg目录下,然后 import(“liblbmysql”)即可引入该mysql驱动
- 连接MySQL配置参数: 类型:map[string]interface{}, 可配置的参数有host, port, unix_socket, uname, pass, dbname, charset 分别对应MySQL数据库的ip, 端口, unix socoket, 用户名,密码,初始化数据库,连接字符集.
相关方法\结果集\字段\记录等的类型定义:
Fields []Field
RowsAffected uint64
InsertId uint64
Rows [][]interface{}
…
}
type Field struct {
Name string
Type int64
…
}
func Connect(info map[string]interface{}) (conn *Connection, err error)
func (this *Connection) Begin() (err error)
func (this *Connection) Commit() (err error)
func (this *Connection) Rollback() (err error)
func (this *Connection) ExecuteFetch(query string) (qr *QueryResult, err error)
func (qr *QueryResult) FetchRow() []interface{}
func (qr *QueryResult) FetchRows() [][]interface{}
func (qr *QueryResult) FetchMap() map[string]interface{}
func (qr *QueryResult) Free()
这里QueryResult的Fetch函数返回的字段记录都是字符串结果,为了统一暂时没有将结果转换成Go语言中对应的数据类型,也是为了统一,方便程序员自己转换处理.
liblbmysql 下载地址:
- Mac 64: http://legendbase.com/products/liblbmysql/mac64/liblbmysql.a
- Win 32: http://legendbase.com/products/liblbmysql/win32/liblbmysql.a
- Win 64:
- Linux 32:
- Linux 64:
PS: liblbmysql 取名由来 LegendBase driver for MySQL
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:谭俊青 来源: MySQL 实验室(BLOG) - MySQL性能、MySQL Cluster集群、MySQL HA高可用等研究 - MySQL实验室
- 标签: liblbmysql
- 发布时间:2012-05-28 13:24:33
-
[66] find命令的一点注意事项
-
[46] memory prefetch浅析
-
[45] 读书笔记-壹百度:百度十年千倍的29条法则
-
[33] 卡诺模型―设计品质与设计价值的思考
-
[31] 小屏幕移动设备网页设计注意事项
-
[28] Oracle bbed工具的编译
-
[25] 基本排序算法的PHP实现
-
[23] 8大实用又重要Mac使用技巧
-
[22] 杨建:网站加速--Cache为王篇
-
[21] 程序员技术练级攻略