diff options
Diffstat (limited to 'modules/sql/src/main/clojure')
-rw-r--r-- | modules/sql/src/main/clojure/clojure/contrib/sql/internal.clj | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/modules/sql/src/main/clojure/clojure/contrib/sql/internal.clj b/modules/sql/src/main/clojure/clojure/contrib/sql/internal.clj index 59a05205..57d7050f 100644 --- a/modules/sql/src/main/clojure/clojure/contrib/sql/internal.clj +++ b/modules/sql/src/main/clojure/clojure/contrib/sql/internal.clj @@ -15,12 +15,11 @@ (:use (clojure.contrib [except :only (throwf throw-arg)] - [properties :only (as-properties)] [seq :only (indexed)])) (:import (clojure.lang RT) (java.sql BatchUpdateException DriverManager SQLException Statement) - (java.util Hashtable Map) + (java.util Hashtable Map Properties) (javax.naming InitialContext Name) (javax.sql DataSource))) @@ -48,6 +47,22 @@ ([val] (swap! (:rollback *db*) (fn [_] val)))) +(defn- as-str + [x] + (if (instance? clojure.lang.Named x) + (name x) + (str x))) + +(defn- ^Properties as-properties + "Convert any seq of pairs to a java.utils.Properties instance. + Uses as-str to convert both keys and values into strings." + {:tag Properties} + [m] + (let [p (Properties.)] + (doseq [[k v] m] + (.setProperty p (as-str k) (as-str v))) + p)) + (defn get-connection "Creates a connection to a database. db-spec is a map containing values for one of the following parameter sets: |