Merge pull request #107 from maxp/master

Parameter type hint in tips-and-tricks
This commit is contained in:
Sean Corfield 2020-05-07 20:00:58 -07:00 committed by GitHub
commit 9d5d9d1461
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -173,15 +173,19 @@ Finally we extend `next.jdbc.prepare/SettableParameter` and `next.jdbc.result-se
(require '[next.jdbc.prepare :as prepare]) (require '[next.jdbc.prepare :as prepare])
(require '[next.jdbc.result-set :as rs]) (require '[next.jdbc.result-set :as rs])
(import '[java.sql PreparedStatement])
(set! *warn-on-reflection* true)
;; if a SQL parameter is a Clojure hash map or vector, it'll be transformed ;; if a SQL parameter is a Clojure hash map or vector, it'll be transformed
;; to a PGobject for JSON/JSONB: ;; to a PGobject for JSON/JSONB:
(extend-protocol prepare/SettableParameter (extend-protocol prepare/SettableParameter
clojure.lang.IPersistentMap clojure.lang.IPersistentMap
(set-parameter [m s i] (set-parameter [m ^PreparedStatement s i]
(.setObject s i (->pgobject m))) (.setObject s i (->pgobject m)))
clojure.lang.IPersistentVector clojure.lang.IPersistentVector
(set-parameter [v s i] (set-parameter [v ^PreparedStatement s i]
(.setObject s i (->pgobject v)))) (.setObject s i (->pgobject v))))
;; if a row contains a PGobject then we'll convert them to Clojure data ;; if a row contains a PGobject then we'll convert them to Clojure data