加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Scala/Slick plain SQL:将结果检索为地图

发布时间:2020-12-16 09:28:28 所属栏目:安全 来源:网络整理
导读:我有一个简单的方法来使用Sclick plain SQL方法从数据库中检索用户: object Data { implicit val getListStringResult = GetResult[List[String]] ( prs = (1 to prs.numColumns).map(_ = prs.nextString).toList ) def getUser(id: Int): Option[List[Stri
我有一个简单的方法来使用Sclick plain 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)
                    .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 )

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读