如何在clojure jdbc中为查询设置fetch-size?

时间:2016-05-07 14:08:13

标签: jdbc clojure

https://github.com/clojure/java.jdbc/blob/master/src/main/clojure/clojure/java/jdbc.clj的clojure jdbc文件中 我们可以为prepare-statement的函数设置获取大小。但是经常只查询一个大表并且还需要设置提取大小。最好还提供一个选项来查询"查询"?

2 个答案:

答案 0 :(得分:1)

query函数用于允许选项作为“SQL& params”向量的一部分传递给prepare-statement调用,但它没有详细记录:

(query [{:fetch-size 50} "SELECT * FROM students WHERE age = ?" 24])

从java.jdbc 0.6.0-rc2开始,prepare-statement选项可以在普通的选项映射位置传递:

(query ["SELECT * FROM students WHERE age = ?" 24] {:fetch-size 50})

上面的旧方法适用于0.6.0-rc2之前的版本,但不再受支持(它会引发异常)。有关详细信息,请参阅http://dev.clojure.org/jira/browse/JDBC-125

答案 1 :(得分:0)

如果我理解正确,您希望设置从查询返回的最大行数。在这种情况下,您可以使用LIMIT,就像这样

(clojure.java.jdbc/query
 ["SELECT * FROM students WHERE age = 24 ORDER BY created LIMIT 50"])

这应该会有所帮助: Clojure and Large Result Sets