go mysql dsn_go-mysql: database/sql 接口适配

现在go-mysql可以直接通过golang sql接口使用,如下:

import _ "github.com/siddontang/go-mysql/mysql"

import "database/sql"

后续的使用,可以直接参考相关golang sql的教程,譬如这个。

golang sql接口的兼容主要在driver.go的文件中,

go-mysql支持的dsn格式为:

:@:/

因为在实现go-mysql的过程中,我就有意识的将一些接口设计成能跟database/sql进行适配。除了Rows接口的适配,因为我总觉得使用起来不方便,但是通过Resultset进行适配Rows也很方便。因为Resultset存储了Query之后所有的数据,所以我们可以通过一个int型iterator,就可以模拟Rows接口:

func (r *mysqlRows) Close() error {

r.iter = -1

return nil

}

func (r *mysqlRows) Next(dest []driver.Value) error {

if r.iter >= r.r.RowNumber() {

return io.EOF

}

data := r.r.Data[r.iter]

for i := range data {

//set data[i] to dest[i]

}

r.iter++

return nil

}

有疑问加站长微信联系(非本文作者)

5c5fbae790ec0313d6ee17e8b3dd9ba1.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值