我使用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循環的方式。 –