3
有沒有辦法從ClojureQL的disj生成sql查詢!連詞!並更新!函數,而不是直接執行它們?只需從ClojureQL的disj生成SQL!連詞!並更新!函數
有沒有辦法從ClojureQL的disj生成sql查詢!連詞!並更新!函數,而不是直接執行它們?只需從ClojureQL的disj生成SQL!連詞!並更新!函數
不,這些方法直接執行它們各自的預處理語句。他們都很基本。對於conj!
和update-in!
,看在conj-rows
和update-vals
功能format
電話,你可以找到internal命名空間中:
(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-strategy
和with-quoted-identifiers
宏作爲表名,而t他其他人不。
所以,如果我反映這些功能,我可以做一個to-str版本,這很酷。任何想法如何與普通選擇一樣,因爲我只是注意到它們在REPL中被轉換爲字符串,但是沒有辦法將它們轉換爲* debug *之外的字符串。 – NielsK
對於查詢,直接使用編譯器,例如:'(compile(table:users)cnx)' –
謝謝,昨天也發現了。爲了完整起見,只要將str函數應用於它就可以將where子句轉換爲字符串。例如:(str(where(=:id 5))) – NielsK