gpt4 book ai didi

Scala/Slick 纯 SQL : retrieve result as a map

转载 作者:行者123 更新时间:2023-12-01 07:10:35 25 4
gpt4 key购买 nike

我有一个简单的方法可以使用 Sclick 纯 SQL 方法从数据库中检索用户:

object Data {

implicit val getListStringResult = GetResult[List[String]] (
prs => (1 to prs.numColumns).map(_ => prs.nextString).toList
)

def getUser(id: Int): Option[List[String]] = DB.withSession {
sql"""SELECT * FROM "user" WHERE "id" = $id""".as[List[String]].firstOption
}

}

结果是 List[String]但我希望它类似于 Map[String, String] - 列名和值对映射。这可能吗?如果是这样,如何?

我的堆栈是 Play Framework 2.2.1、Slick 1.0.1、Scala 2.10.3、Java 8 64bit

最佳答案

import scala.slick.jdbc.meta._
val columns = MTable.getTables(None, None, None, None)
.list.filter(_.name.name == "USER") // <- upper case table name
.head.getColumns.list.map(_.column)
val user = sql"""SELECT * FROM "user" WHERE "id" = $id""".as[List[String]].firstOption
.map( columns zip _ toMap )

关于Scala/Slick 纯 SQL : retrieve result as a map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19891881/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com