Scala 的 Slick orm 如何检索数据库列值
Slick orm for scala how can I retrieve a database column value
我是使用 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 中?
当你这样做时:database.run(selectq).map {finished=> ... }
finished
是 Vector[(String,Int)]
。如果你确定它 return 只是一行(因为 "... where id=17"
)那么你可以使用 headOption()
并检查它是否有一个值(它将是 none 如果没有 ID 为 17) 的记录,如果有 -> return 则 return 出现一些错误。代码将是这样的:
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")
}
}
}
我是使用 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 中?
当你这样做时:database.run(selectq).map {finished=> ... }
finished
是 Vector[(String,Int)]
。如果你确定它 return 只是一行(因为 "... where id=17"
)那么你可以使用 headOption()
并检查它是否有一个值(它将是 none 如果没有 ID 为 17) 的记录,如果有 -> return 则 return 出现一些错误。代码将是这样的:
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")
}
}
}