我是使用版本3.1.1的Slick ORM的新手,在普通sql的示例中,我没有看到如何检索数据库列http://slick.typesafe.com/doc/3.1.1/sql.html的值。这是我的简单例子
def listfollowing() = Action.async {
val selectq=sql"""SELECT model,id from carsDB where id=17""".as[(String,Int)]
// I would like to get the value of model back and put it in a Var
// var model= model
database.run(selectq).map {finished=>
// I would like to get the value of model back and put it in a Var
// var model= model
Ok(finished.toString())
}
}
如何找回列模型的值,以便将其放入var或val ?
答案 0 :(得分:1)
当你这样做时:database.run(selectq).map {finished=> ... }
finished
是Vector[(String,Int)]
。如果您确定它只返回一行(因为"... where id=17"
),那么您可以使用headOption()
并检查其中是否有值(如果没有id的记录则为none 17),如果有 - >返回它否则返回一些错误。代码将是这样的:
def listfollowing() = Action.async {
val selectq = sql"""SELECT model,id from carsDB where id=17""".as[(String, Int)]
db.run(selectq).map { finished =>
finished.headOption match {
case s: (String, Int) => Ok(s._1)
case None => Ok("No car found for requested id")
}
}
}