Uso Scala y JDBC, ahora quiero reutilizar un PreparedStatement
para hacer una inserción múltiple. Quiero usar un bucle foreach sobre una matriz, pero no puedo hacerlo bien con Scala.¿Cómo usar un bucle foreach en Scala que muta un objeto?
val stmt = conn.prepareStatement(insertStatement)
// wrong Scala
items.foreach(item : MyItem =>
stmt.setInt(1, item.id)
stmt.setInt(2, item.value)
stmt.executeUpdate()
)
items
es una matriz que contiene múltiples MyItem
.
¿Cómo puedo escribir este foreach-loop en Scala y reutilizar el PreparedStatement
?
¿Podría ser que necesita usar llaves ('elementos foreach {...}') para que el bloque de varias líneas se ejecute correctamente? De lo contrario, explique ** por qué ** está equivocado (por ejemplo, proporcione el mensaje de error del compilador o el comportamiento incorrecto que resulta). –
@Andrzej: He tratado de poner '{' y '}' en algunos lugares, pero no puedo hacer que se compile con ninguna combinación. El error en este caso es 'Error raised is: ')' expected but '(' found. * * At *' stmt.setInt ↓ (1, item.id) ' – Jonas
@Jones parece que es un problema de llaves. ; He agregado una respuesta que demuestra esto. Si todavía está viendo problemas, probablemente se base en un error lógico en otro lugar, en lugar de en la forma en que Scala maneja los bucles foreach. –