Browse Clojure Foundations for Java Developers

Integrating with Databases

Keep the database at the edge: manage connections, map rows to data, and keep queries testable.

Database access is an I/O boundary, so it fits naturally in the “impure shell” of a Clojure service. Your core stays pure; the DB layer turns rows into maps and maps into parameters.

This section focuses on practical integration: connection lifecycle, transaction boundaries, and keeping SQL/queries understandable in code review.

In this section

Revised on Friday, April 24, 2026