golang gorp插入多条记录

使用 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。


桃花长相依
浏览 249回答 2
2回答

HUH函数

当我发现了一些其他资源的原因,这并不工作,是interface{}和User{}没有在内存中相同的布局,因此,他们的切片兼容的类型不。建议的解决方案是转换[]User{}为[]interface{}in for 循环,如下所示: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会抱怨非指针。

慕森王

看起来 gorp 没有任何东西可以为原始 SQL 或多值插入提供包装器(这始终取决于 SQL 方言)。您是否担心速度或交易?如果没有,我只会在 for 循环中进行插入。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go