zodiac-sql provides wrapper functions around next.jdbc that accept either HoneySQL maps or raw SQL vectors.
Execute a query and return all results as a sequence of maps.
;; With HoneySQL map
(z.sql/execute! db {:select [:id :name]
:from [:users]
:where [:= :active true]})
;; => [{:id 1 :name "Alice"} {:id 2 :name "Bob"}]
;; With SQL vector
(z.sql/execute! db ["SELECT id, name FROM users WHERE active = ?" true])
;; => [{:id 1 :name "Alice"} {:id 2 :name "Bob"}]
Execute a query and return a single result as a map, or nil if no results.
(z.sql/execute-one! db {:select [:*]
:from [:users]
:where [:= :id 1]})
;; => {:id 1 :name "Alice" :email "alice@example.com"}
(z.sql/execute-one! db {:select [:*]
:from [:users]
:where [:= :id 999]})
;; => nil
Check if a query returns any results. Returns true or false.
Note: Only accepts HoneySQL maps, not SQL vectors.
(z.sql/exists? db {:select [:id]
:from [:users]
:where [:= :email "alice@example.com"]})
;; => true
Count the number of rows a query would return.
Note: Only accepts HoneySQL maps, not SQL vectors.
(z.sql/count db {:select [:id]
:from [:users]
:where [:= :active true]})
;; => 42
All query functions accept either format:
["SELECT * FROM users WHERE id = ?" 1]The exists? and count helpers only accept HoneySQL maps because they wrap your query in additional SQL.
Can you improve this documentation?Edit on GitHub
cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |