【问题标题】:Slick orm for scala how can I retrieve a database column valuescala的光滑orm如何检索数据库列值
【发布时间】:2016-02-08 07:27:10
【问题描述】:

我是使用 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

【问题讨论】:

    标签: scala playframework slick slick-3.0


    【解决方案1】:

    当你这样做时:database.run(selectq).map {finished=> ... } finishedVector[(String,Int)]。如果您确定它只返回一行(因为 "... where id=17"),那么您可以使用 headOption() 并检查其中是否有值(如果没有 id 为 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")
            }
        }
    }
    

    【讨论】:

    • 太棒了!很高兴我能帮忙:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-24
    • 2012-05-03
    相关资源
    最近更新 更多