如何使用Slick 3从SQL select查询中获取结果

时间:2015-08-28 09:23:51

标签: scala slick slick-3.0

我想对我的数据库运行自定义sql select请求。在光滑的3 docs之后我最终得到了类似的东西

"com.typesafe.slick" %% "slick" % "3.0.1",
"mysql" % "mysql-connector-java" % "5.1.35",

import slick.driver.MySQLDriver.api._

val db = Database.forURL(url, username, password, driver = driver)

val s = sql"""select name, email from users""".as[(String, String)]

val f: Future[Unit] = db.run(DBIO.seq(s))

但是我想得到一个Seq of Tuples。我怎么能得到它?

1 个答案:

答案 0 :(得分:4)

来自DBIO documentation

  

def seq [E&lt ;: Effect](动作:DBIOAction [_,NoStream,E] *):   DBIOAction [Unit,NoStream,E]

     

一个更简单的序列版本,它带有许多DBIOActions   任何返回类型为varargs并返回执行该操作的DBIOAction   各个动作按顺序(使用andThen),return()在   端。

因此,DBIO.seq将始终返回Unit。如果您只想执行单个查询,只需将查询本身传递给db.run方法即可。因此,你最后一行将是:

val f: Future[Seq[(String, String)] = db.run(s)