3

ClojureQLのdisjからSQLクエリを生成する方法はありますか?接続詞!とアップデートイン!それらを直接実行する代わりに、関数?

4

1 に答える 1

1

いいえ、これらのメソッドはそれぞれの準備済みステートメントを直接実行しています。それらはすべてかなり基本的なものです。conj!andについては、内部名前空間内にあるand関数の呼び出しをupdate-in!見てください。formatconj-rowsupdate-vals

 (format "INSERT INTO %s %s VALUES (%s)"
         (to-tablename table) columns template)

 (format "UPDATE %s SET %s WHERE %s"
         (to-tablename table) columns where)

の場合disj!、ClojureQL は以下を含むclojure.java.jdbcライブラリdelete-rows関数を使用しています。

  (format "DELETE FROM %s WHERE %s"
          (as-identifier table) where)

したがって、基本的に、テーブル名にとマクロdisj!を使用する機能を取得しますが、他java.jdbcの機能は使用しません。with-naming-strategywith-quoted-identifiers

于 2011-09-08T16:26:05.367 に答える