Bisql separates:
The execution side is handled by adapters.
The current default adapter is :next-jdbc.
In practice, bisql.core/defquery generates functions that execute through
next.jdbc.
The current next.jdbc adapter returns result keys in kebab-case.
For example:
{:display-name "Alice"
:created-at ...}
instead of:
{:display_name "Alice"
:created_at ...}
For explicit JDBC-oriented conversions, the current adapter namespace provides:
bisql.adapter.next-jdbc/->timestampbisql.adapter.next-jdbc/->datebisql.adapter.next-jdbc/->timeThese are useful when working with REPL examples or explicit JDBC values.
For example:
(require '[bisql.adapter.next-jdbc :as bisql.jdbc])
(sql.postgresql.public.users.core/list-by-created-at
ds
{:created-after (bisql.jdbc/->timestamp #inst "2026-04-14T00:00:00.000-00:00")
:birth-date (bisql.jdbc/->date (java.time.LocalDate/parse "2026-04-14"))
:alarm-time (bisql.jdbc/->time (java.time.LocalTime/parse "08:30:00"))})
This is mainly useful when you want to keep application values explicit before
passing them to next.jdbc.
Bisql does not try to replace the entire JDBC layer. Adapters are intentionally thin.
That keeps Bisql focused on:
while delegating actual execution to established database libraries.
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 |