2013-05-10 52 views
1

我使用Anorm從Playframework 2.1查詢MySQL數據庫。我創建了這樣的準備好的聲明。需要使用PreparedStatement和Anorm scala的示例

import play.api.db.DB 
import anorm._ 

val stat = DB.withConnection(implicit c => SQL("SELECT name, email FROM user WHERE id=?").filledStatement) 

現在我該如何使用它?我是否正在做這件事?我完全不瞭解這個anorm API,並且我已經通過源代碼而沒有深入瞭解。

代碼示例更受歡迎。

回答

1

有關Anorm用法的一個很好的例子在相應的tutorial中給出。它還包含一些將動態參數傳遞給查詢的示例。您應該先編寫查詢並在查詢字符串中替換聲明佔位符,如{somePlaceholder}。您可以使用.on()方法這樣以後賦值:

SQL(
    """ 
    select * from Country c 
    join CountryLanguage l on l.CountryCode = c.Code 
    where c.code = {countryCode}; 
    """ 
).on("countryCode" -> "FRA") 

或者你的情況:

import play.api.db.DB 
import anorm._ 

val stat = DB.withConnection(implicit c => 
    SQL("SELECT name, email FROM user WHERE id={id}").on("id" -> 42) 
) 
+0

所以沒有必要讓來自filledStatement功能的java.sql.PreparedStatement中?太棒了。我已經在我的應用上做了這個。乾杯 – 2013-05-10 17:05:18