gpt4 book ai didi

golang gorp 插入多条记录

转载 作者:IT王子 更新时间:2023-10-29 01:58:53 25 4
gpt4 key购买 nike

如何使用 gorp 高效地插入多条记录?即不是一次插入一个,是否有批量插入?

var User struct {
Name string
Email string
Phone string
}
var users []Users
users = buildUsers()
dbMap.Insert(users...) //this fails compilation
//I am forced to loop over users and insert one user at a time. Error Handling omitted for brevity

gorp有没有更好的机制?驱动程序是 MySQL。

最佳答案

正如我在其他一些资源上发现的,这不起作用的原因是 interface{}User{} 在内存中没有相同的布局,因此它们的 slice 类型不兼容。建议的解决方案是在 for 循环中将 []User{} 转换为 []interface{},如下所示:https://golang.org/doc/faq#convert_slice_of_interface

仍然需要注意:您需要为 DbMap.Insert() 函数使用指针。

我是这样解决的:

s := make([]interface{}, len(users))
for i, v := range users {
s[i] = &v
}
err := dbMap.Insert(s...)

注意&v很重要,否则Insert会报非指针。

关于golang gorp 插入多条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36990644/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com