0

In the following code ... (taken from Scala Play Tutorial)

object Task {

val task = {
    get[Long]("id") ~
    get[String]("label") map {
        case id~label => Task(id, label)
    }
}

    ...

    def create(label:String) {
        DB.withConnection { implicit c =>
            SQL("insert into task (label) values ({label})").on(
                'label -> label
            ).executeUpdate()
        }
    }

Does the 'label -> label mean insert the map { id : label } ?

I suppose the purpose is to write more concise code?

4

2 に答える 2

0

"insert into task (label) values ({label})"はテンプレートでonあり、そのテンプレートを type のパラメーターのマップでSymbol -> Stringレンダリングしています。おそらく、レンダリング時にパラメーターをエスケープする sql も同様です。シンボルは基本的に、マップのキーとして最適化された文字列のような型です。

于 2013-01-05T01:40:45.947 に答える
0

'label -> labelSQL 構文は であるため、はlabel:Stringの代わりを意味します。まともな言語ファミリーであるSQLについて何か読んでください"{label}"insert into table (field1, field2, ...) values (value1, value2, ...)

于 2013-01-05T01:43:16.860 に答える