golang实现chunk方式的查询
有一个需求,是把表里面所有的数据都查询出来,并且生成json
文件。因为一张表里面的数据很多,所以不可能一次性全部查询出来,所以需要用到chunk
。之前用的gorm
,但是发现gorm
没有chunk
方式的查询。如果要自己去实现这种操作,就需要去管理偏移量,而且还容易出现bug
,所以就找了一个库,叫做gorose
。用起来挺舒服的。
代码如下:
1234567891011121314151617181920212223242526272829303132333435363738394041 | package mainimport ( "fmt" "github.com/gohouse/gorose")// type User struct {// ID int// UserName string// }const ( dbHost = "tcp(host.docker.internal:3306)" dbName = "test" 大专栏 golang实现chunk方式的查询span> dbUser = "root" dbPassword = "123456")func () { dsn := dbUser + ":" + dbPassword + "@" + dbHost + "/" + dbName + "?charset=utf8" var dbConfig = gorose.DbConfigSingle{ Driver: "mysql", Dsn: dsn, } connection, err := gorose.Open(&dbConfig) if err != nil { fmt.Println(err) return } session := connection.NewSession() user := session.Table("users") user.Fields("id", "username", "number").Chunk(2, func(data []map[string]interface{}) { fmt.Println(data) })} |
执行结果如下:
12345 | ~/codeDir/golangCode/test # go run main.go[map[id:1 username:a number:1] map[id:2 username:b number:2]][map[number:3 id:3 username:c] map[id:4 username:d number:4]][map[id:5 username:e number:5]]~/codeDir/golangCode/test # |
可以看出,每次都会查询出2条记录。
这个框架一个缺点就是文档不是很清楚,报错也有点不习惯。但是先用这个库解决一下chunk
查询的问题吧。
相关推荐
GoatSucker 2020-11-23
CoderToy 2020-11-16
蛰脚踝的天蝎 2020-11-10
ZGCdemo 2020-11-09
86193952 2020-10-27
Lzs 2020-10-23
hjr 2020-10-21
HELLOBOY 2020-10-21
qidiantianxia 2020-10-21
cmsmdn 2020-10-21
myspace 2020-10-21
笑面依旧 2020-10-21
专注前端开发 2020-10-21
技术之博大精深 2020-10-16
zhushenghan 2020-11-09
风雨断肠人 2020-10-13
xuguiyi00 2020-11-04
sichenglain 2020-10-27