Connecting to a Database
As alluded to previously, we'll be leveraging JDBC for all our database interactions. JDBC allows a Java client to connect to an RDBMS using a well-defined Application Programming Interface (API). This API gives us a clear contract between ourselves (the client) and our database (the server). Since Clojure sits atop the Java Virtual Machine (JVM), JDBC is the natural choice for us.
For those familiar with JDBC, you'll have encountered the (occasionally unwieldy) JDBC URL. These URLs vary depending on the RDBMS, where the database is located, and how it is secured, among other things. In essence, they are a database connection descriptor.
Fortunately, clojure.java.jdbc
abstracts this away with its concept of db-spec
(a database specification). db-spec
is a simple map structure holding details pertinent to the connection we're looking to make. This db-spec
structure can then be passed to any clojure.java.jdbc
API call and it will build the...