2016-04-26 29 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 
}