如何使用scala Play2.6从数据库中选择单列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用scala Play2.6从数据库中选择单列相关的知识,希望对你有一定的参考价值。

我有一个表用户详细信息表,它包含在列下面

用户ID,用户名,电子邮件

我想选择用户ID为1的电子邮件,我希望响应为正确的JSON格式

如何在Scala Play 2.6中使用Slick进行操作 直到现在我已经这样做了

 def getPasswqord(username:String):Future[Seq[(String)]]= {
    val a2 = (sql"""select a.userpassword from user_details_table  a where a.Email=$username or a.Mobile_no=$username""".as[(String)])

    dbConfig.run(a2)

    }

从这个我得到回应的格式"["12345"]"

预期的输出格式是

"[{"Password":"12345"}]"
答案

您应该定义自定义Json Writes来格式化查询结果。例如:

import play.api.libs.json.{JsPath, JsValue, Json, Writes}

// Given passwords
val passwords: Seq[(String)] = Seq(("12345"), ("qwerty"))
val writes : Writes[String] = (JsPath  "password").write[String]

def toJson[T](sequence: Seq[T])(implicit writes: Writes[T]): JsValue = {
  Json.toJson(sequence)
}

toJson(passwords)(writes)

这将输出json对象[{"password":"12345"},{"password":"qwerty"}]

以上是关于如何使用scala Play2.6从数据库中选择单列的主要内容,如果未能解决你的问题,请参考以下文章

PLAY2.6-SCALA 数据的返回与保存

PLAY2.6-SCALA 表单的处理

在 Scala Play Framework v2.6.x 中出现 cors 错误

如何在 Scala 中连接两个数据帧并通过索引从数据帧中选择几列?

如何从 Enum Scala3 中随机选择元素

Scala使用匿名类主体中的空格调用单参数方法