2016-04-26 58 views
1

我有这样的代码:ANORM GET为智力结果

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

如果你看看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"..."(不含括号)。

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 
}