如何从next.jdbc/plan
的结果直接实现行,不进行任何转换?
标识符不适用
(require '[next.jdbc :as jdbc])
(def sql-params
["SELECT column1
FROM (VALUES (1, 1, 1),
(2, 2, 2),
(3, 3, 3)) AS _"])
(into []
(map identity)
(jdbc/plan db-spec
sql-params))
;=> [{row} from `plan` -- missing `map` or `reduce`?
; {row} from `plan` -- missing `map` or `reduce`?
; {row} from `plan` -- missing `map` or `reduce`?]
如果行以映射(默认)的形式表示,则#(into {} %)
适用
(into []
(map #(into {} %))
(jdbc/plan db-spec
sql-params))
;=> [{:column1 1} {:column1 2} {:column1 3}]
如果行以向量(builder-fn
)的形式表示,可以使用vec
(require '[next.jdbc.result-set :as rs])
(into []
(map vec)
(jdbc/plan db-spec
sql-params
{:builder-fn rs/as-arrays}))
;=> [[1] [2] [3]]
有任何xform可以同时包含映射和向量的行实现吗?
或者我应该使用除plan
之外的东西进行懒加载的结果集读取?