1 Star 0 Fork 0

zjh-tech / go-edb

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
dbresult.go 1.58 KB
一键复制 编辑 原始数据 按行查看 历史
zjh-tech 提交于 2023-08-02 13:31 . init
package edb
import (
"database/sql"
"reflect"
)
type MysqlRecordSet struct {
recordSet []map[string]string
affectedRows int64
insertId int64
recordSetattach []interface{}
}
func NewMysqlRecordSet(sqlRows *sql.Rows, affectedRows int64, insertId int64) *MysqlRecordSet {
result := GMysqlRecordSetPool.Get().(*MysqlRecordSet)
result.affectedRows = affectedRows
result.insertId = insertId
result.recordSet = make([]map[string]string, 0)
result.build(sqlRows)
return result
}
func NewEmptyMysqlRecordSet() *MysqlRecordSet {
return &MysqlRecordSet{}
}
func (m *MysqlRecordSet) build(sqlRows *sql.Rows) {
if sqlRows == nil {
return
}
defer func() {
sqlRows.Close()
sqlRows = nil
}()
columns, _ := sqlRows.Columns()
cache := make([]interface{}, len(columns))
values := make([]sql.RawBytes, len(columns))
for index, _ := range cache {
cache[index] = &values[index]
}
for sqlRows.Next() {
_ = sqlRows.Scan(cache...)
item := make(map[string]string)
for k, v := range cache {
content := reflect.ValueOf(v).Interface().(*sql.RawBytes)
item[columns[k]] = string(*content)
}
m.recordSet = append(m.recordSet, item)
}
}
func (m *MysqlRecordSet) GetRecordSet() []map[string]string {
return m.recordSet
}
func (m *MysqlRecordSet) GetAffectRows() int64 {
return m.affectedRows
}
func (m *MysqlRecordSet) GetInsertId() int64 {
return m.insertId
}
func (m *MysqlRecordSet) SetRecordSetattach(recordSetAttach []interface{}) {
m.recordSetattach = recordSetAttach
}
func (m *MysqlRecordSet) GetRecordSetattach() []interface{} {
return m.recordSetattach
}
Go
1
https://gitee.com/zjh-tech/go-edb.git
git@gitee.com:zjh-tech/go-edb.git
zjh-tech
go-edb
go-edb
master

搜索帮助