2013-05-10 6 views
1

Playframework 2.1에서 MySQL 데이터베이스 쿼리를 위해 Anorm을 사용하고 있습니다. 나는 이렇게 준비된 성명서를 만들었습니다.Anorm scala로 PreparedStatement를 사용하는 예제가 필요합니다.

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() 방법을 사용하여 값을 지정할 수 있습니다 :

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의를 얻을 필요가 없습니다 :

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

또는 귀하의 경우

? 환상적. 나는 이미 내 앱에서 그렇게하고 있었다. 건배 –