“不推荐使用的”的替代品是什么;带查询结果“;clojure/java.jdbc0.3.0中的函数?

“不推荐使用的”的替代品是什么;带查询结果“;clojure/java.jdbc0.3.0中的函数?,jdbc,clojure,Jdbc,Clojure,我正在将当前使用clojure/java.jdbc0.2.0的代码迁移到新的0.3.0api 在0.3.0 API中有许多新弃用的函数 我一直在广泛使用“with query results”,但现在已经不推荐使用它了,那么使用什么样的直接替换函数来获得与此等效的行为呢 (defn get-user [username] (jdbc/with-connection db (jdbc/with-query-results results ["select username,

我正在将当前使用clojure/java.jdbc0.2.0的代码迁移到新的0.3.0api

在0.3.0 API中有许多新弃用的函数

我一直在广泛使用“with query results”,但现在已经不推荐使用它了,那么使用什么样的直接替换函数来获得与此等效的行为呢

(defn get-user [username]
  (jdbc/with-connection db
    (jdbc/with-query-results results
      ["select username, password, roles from users where username = ?" username]
      (cond
        (empty? results)
          nil
        :else
          (first results)))))

我知道不再需要“带连接”,但在此之后,可用文档对我来说非常不清楚。

我假设您需要类似以下内容:

(let [results (jdbc/query db ["select ..." ...] :as-arrays? true)]
  ...)

请参阅或。

现在可以通过两个新命名参数在顶级java.jdbc函数的范围内处理结果集:
:row fn
:result set fn
。第一个转换每行,第二个转换行集合。如果
:result set fn
返回一个延迟序列,那么在以后使用它时,您将得到一个连接或resultset closed异常。默认的
:结果集fn
doall
。当使用你自己的时,确保它被实现

(query db
       ["select firstname, lastname from users where username = ?" username]
       :row-fn #(str (% :firstname) \space (% :lastname))
       :resultset-fn first)