如何从查询结果中获取值

Leo*_*hin 5 scala datasource slick

我尝试使用 Slick(3.0.2) 在我的项目中使用 Scala 操作数据库。这是我的部分代码

val query = table.filter(_.username === "LeoAshin").map { user => (user.username, user.password, user.role, user.delFlg) }

val f = db.run(query.result)
Run Code Online (Sandbox Code Playgroud)

我如何从“f”中读取数据我已经多次尝试谷歌解决方案,但没有答案可以解决我的困惑非常感谢

Ann*_*nko 2

的类型query.resultDBIO. 当你打电话时db.run,它会变成Future

\n\n

如果要打印数据,请使用

\n\n
import scala.concurrent.ExecutionContext.Implicits.global\nf.foreach(println)\n
Run Code Online (Sandbox Code Playgroud)\n\n

要继续处理数据,请使用f.map { case (username, password, role, delFlg) \xe2\x87\x92 ... }

\n\n

如果你想阻止 Future 并获得结果(例如,如果你在 REPL 中玩耍),请使用类似的东西

\n\n
import scala.concurrent.Await\nimport scala.concurrent.duration._\nAwait.result(f, 1.second)\n
Run Code Online (Sandbox Code Playgroud)\n\n

请记住,这不是您想要在生产代码中执行的操作 \xe2\x80\x94 对 Future 进行阻塞是一种不好的做法。

\n\n

我通常建议专门学习 Scala 核心类型和 Future。当你打电话时,圆滑的“责任”就结束了db.run

\n