Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (ns anorak.db.core
- (:require
- [clojure.java.jdbc :as jdbc]
- [conman.core :as conman]
- [honeysql.core :as sql]
- [java-time.pre-java8 :as jt]
- [mount.core :refer [defstate]]
- [anorak.config :refer [env]]))
- (defstate ^:dynamic *db*
- :start (conman/connect! {:jdbc-url (env :database-url)})
- :stop (conman/disconnect! *db*))
- (conman/bind-connection *db* "sql/queries.sql")
- (defn list-tables []
- (jdbc/query *db* (sql/format {:select [:name]
- :from [:us-census.sqlite_master]
- :where [:= :type "table"]})))
- (extend-protocol jdbc/IResultSetReadColumn
- java.sql.Timestamp
- (result-set-read-column [v _2 _3]
- (.toLocalDateTime v))
- java.sql.Date
- (result-set-read-column [v _2 _3]
- (.toLocalDate v))
- java.sql.Time
- (result-set-read-column [v _2 _3]
- (.toLocalTime v)))
- (extend-protocol jdbc/ISQLValue
- java.util.Date
- (sql-value [v]
- (java.sql.Timestamp. (.getTime v)))
- java.time.LocalTime
- (sql-value [v]
- (jt/sql-time v))
- java.time.LocalDate
- (sql-value [v]
- (jt/sql-date v))
- java.time.LocalDateTime
- (sql-value [v]
- (jt/sql-timestamp v))
- java.time.ZonedDateTime
- (sql-value [v]
- (jt/sql-timestamp v)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement