Anorm得到Int作为结果

时间:2016-04-26 11:46:04

标签: scala anorm

我有这样的代码:

def getUserId(email: String) = DB.withConnection { implicit con =>
  SQL("select userId from signUp where email = {email}").
    on('email -> email).as(SqlParser.str("access_token").singleOpt)
}

结果是String

如何将结果显示为Int

2 个答案:

答案 0 :(得分:2)

如果您查看Anorm documentation,可以看到如何使用行解析器。

对于Int,请使用SqlParser.get[Int]或其方便的别名SqlParser.int

你正在寻找一列只有一列,.scalar更好。

val res: Option[Int] = 
  SQL"SELECT userId FROM signUp WHERE email = $email".
    as(SqlParser.scalar[Int].singleOpt)
  

注意Anorm插值SQL"..."(不带括号)。

答案 1 :(得分:0)

我认为它应该有效

def getUserId(email: String) = { 
    val userId = DB.withConnection { 
       implicit a => SQL( """ select userId from signUp where email = {email} """).on('email -> email).as(SqlParser.str("access_token").singleOpt) 
    } 
    userId.toInt 
}