只是想了解 clojureql 的 open-global 和 with-results 的目的。我首先阅读了这篇概述:ClojureQL 与 clojure.contrib.sql 相比如何?
出于某种原因,我认为 open-global 会取代 sql/with-connection,例如,我认为这会起作用:
(def db {...}) ; connection details omitted
(open-global db)
(println (:name (first @(table :users)))
但是,这不起作用。看来我需要同时进行开放全局并将执行查询包装在(sql / with-connection db)中,这让我感到惊讶(我认为开放全局提供了默认的全局可访问连接)。因此,既然情况似乎并非如此,我现在就想知道它到底做了什么。
另外... with-results 与简单地使用@ 执行查询有何不同?因为似乎 @(table :users) 会给我留下一个执行查询结果的序列(这不是 with-results 的作用吗)?