代码拉取完成,页面将自动刷新
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
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。