Scala Slick批量插入数组
发布时间:2020-12-16 09:57:56 所属栏目:安全 来源:网络整理
导读:我将一个长字符串拆分为一个字符串数组,然后我想将它们全部插入到数据库中.我可以轻松地遍历数组并逐个插入,但它似乎非常低效.然后我认为有一个insertAll()方法.但是,insertAll()方法定义如下: def insertAll(值:U *) 这只接受多个U,但不接受数组或列表. /
我将一个长字符串拆分为一个字符串数组,然后我想将它们全部插入到数据库中.我可以轻松地遍历数组并逐个插入,但它似乎非常低效.然后我认为有一个insertAll()方法.但是,insertAll()方法定义如下:
def insertAll(值:U *) 这只接受多个U,但不接受数组或列表. /* Insert a new Tag */ def insert(insertTags: Array[String])(implicit s: Session) { var insertSeq: List[Tag] = List() for(tag <- insertTags) { insertSeq ++= new Tag(None,tag) } Tag.insertAll(insertSeq) } * Tag是表Object 这是我写的初步代码.它不起作用,因为insertAll()不接受Seq.我希望有一种方法可以做到这一点……所以它不会生成数组长度乘以SQL插入子句. 解决方法
当函数期望重复参数(例如U *)并且您希望传递U序列时,必须将其标记为序列参数,这可以通过以下方式完成:_ *
Tag.insertAll(insertSeq: _*) 这在6.6节的说明书中有所描述.它消除了一些情况,如; def f(x: Any*) f(Seq(1,"a")) 在那里,f可以使用单个参数调用,Seq(1,“a”)或2,1和“a”.它将是前者,后者用f(Seq(1,“a”):_ *)完成. Python有类似的语法. 关于你评论中的问题: 它不是一种方法,它更像是一种类型的堕落.它只是告诉编译器这个参数本身是完整的预期Seq,而不是序列参数中的唯一项. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |