我想知道mydb的parseRows方法是什么时候讲的?
来源:4-3 编码实战:实现用户登录接口

慕的地7923722
2020-01-20
反复看了前面的视频,难道我看漏了么,突然间就多了个这个方法?
写回答
2回答
-
xiaomo
2020-01-21
年后课程计划做升级优化,不知道小伙伴是否方便加好友,想收集收集意见,了解下都有哪些地方可以进行优化改进和提高学习效果呢。后续有问题可以随时沟通联系~
00 -
xiaomo
2020-01-20
同学您好, 视频里没有对课程代码里的每个方法都有讲解,这个ParseRows方法目前已经在视频里添加了瞄点作为补充说明,可以刷新4-3小节看看哈。另外具体代码也可以在git仓库中查看:
https://git.imooc.com/coding-323/filestore-server/src/charter4/db/mysql/conn.go
很抱歉因为这个问题造成同学们的疑惑, 也非常感谢同学的批评和提醒。
以下为ParseRows方法的具体代码,我补充了一些注释, 如果还有疑问随时欢迎拍砖哦~~
func ParseRows(rows *sql.Rows) []map[string]interface{} { // 获取记录列(名) columns, _ := rows.Columns() // 创建列值的slice (values),并为每一列初始化一个指针 // scanArgs用作rows.Scan中的传入参数 scanArgs := make([]interface{}, len(columns)) values := make([]interface{}, len(columns)) for j := range values { scanArgs[j] = &values[j] } // record为每次迭代中存储行记录的临时变量 record := make(map[string]interface{}) // records为函数最终返回的数据(列表) records := make([]map[string]interface{}, 0) // 迭代行记录 for rows.Next() { //每Scan一次,将一行数据保存到record字典 err := rows.Scan(scanArgs...) checkErr(err) for i, col := range values { if col != nil { record[columns[i]] = col } } records = append(records, record) } return records }
022020-01-20
相似问题