我使用Scala和JDBC,现在我想重复使用PreparedStatement
来执行多重插入。我想在数组上使用foreach循环,但我无法用Scala解决它。如何在Scala中使用foreach循环来改变对象?
val stmt = conn.prepareStatement(insertStatement)
// wrong Scala
items.foreach(item : MyItem =>
stmt.setInt(1, item.id)
stmt.setInt(2, item.value)
stmt.executeUpdate()
)
items
是一个包含多个MyItem
的数组。
如何在Scala中编写这个foreach循环并重用PreparedStatement
?
难道你只是需要使用大括号('items foreach {...}')才能让多行块正确执行吗?如果没有,请解释**为什么**这是错误的(例如给出编译器错误消息,或者结果不正确的行为)。 –
@Andrzej:我曾尝试在几个地方放置'{'和'}',但我无法用任何组合编译它。在这种情况下的错误是'错误提出是:')'预期,但'('found.' *在*'stmt.setInt↓(1,item.id)' – Jonas
@Jones它看起来像是一个花括号问题;我已经添加了一个答案来证明这一点,如果你仍然看到问题,那么它可能是基于其他地方的逻辑错误,而不是Scala处理foreach循环的方式。 –