У меня есть следующий код, который я использую для извлечения данных из базы данных и последующего заполнения класса.
Если имена столбцов и свойства класса идентичны, существует ли более элегантный способ заполнения класса кроме двухэтапного процесса, который у меня сейчас есть - (1) создание переменных, а затем (2) заполнение объекта переменными?
Как вы можете оценить, когда у класса много свойств - там много удвоенный код для ввода, который я бы хотел избежать.
Обновлено: Спасибо за предложение использовать Doob ie / Anorm / et c. Но я намеренно хочу написать слой постоянства как учебное упражнение Scala / FP. я также понимаю, что макросы меняются в Scala 3 - что не так уж и далеко сейчас - поэтому я предпочел бы найти решение, применимое после обновления; Спасибо!
def getGroups(): Vector[Group] = {
def createGroup(groupname: String) = {
Group(groupName = groupname
...
...
...
)
}
// Get the rows returned from the database.
val dbResults = Try { selectAllFromTable("groups") }
dbResults match {
case Success(rs) => {
// Create an Iterator[]
ResultSetUtils.toIterator(rs) { rs =>
createGroup(
rs.getString("groupname")
...
...
...
)
}
}.toVector
case Failure(ex) =>
Vector.empty[Group]
}
}