“不推荐使用的”的替代品是什么;带查询结果“;clojure/java.jdbc0.3.0中的函数?
我正在将当前使用clojure/java.jdbc0.2.0的代码迁移到新的0.3.0api 在0.3.0 API中有许多新弃用的函数 我一直在广泛使用“with query results”,但现在已经不推荐使用它了,那么使用什么样的直接替换函数来获得与此等效的行为呢“不推荐使用的”的替代品是什么;带查询结果“;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,
(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)