Scala: предоставление JDBC ResultSet через генератор (повторяемый)
у меня есть набор строк в базе данных, и яя хотел бы предоставить интерфейс для прокрутки через них, как это:
def findAll: Iterable[MyObject]
Где мы нене требует наличия всех экземпляров в памяти одновременно. В C # вы можете легко создавать генераторы, подобные этому, с помощью yield, компилятор заботится о преобразовании кода, который проходит через набор записей, в итератор (своего рода инвертирование).
Мой текущий код выглядит так:
def findAll: List[MyObject] = {
val rs = getRs
val values = new ListBuffer[MyObject]
while ( rs.next() )
values += new valueFromResultSet(rs)
values.toList
}
Есть ли способ, которым я мог бы преобразовать это, чтобы не хранить весь набор в памяти? Возможно, я мог бы использовать для понимания?