धारणा:आपके पास पहले से ही क्लोजर और माईएसक्यूएल दोनों आपकी मशीन पर चल रहे हैं।
-
चेकआउट करें और clojure-contrib बनाएं :
git clone git://github.com/richhickey/clojure-contrib.git cd clojure-contrib build
परिणामी clojure-contrib.jar लगाएं आपके क्लासपाथ . पर ।
-
डाउनलोड करें MySQL Connector/J और mysql-connector-java-5.1.7-bin.jar . डालें आपके क्लासपाथ . पर
आपको इन तर्कों के साथ अपना JVM चलाना पड़ सकता है:
-Djdbc.drivers=com.mysql.jdbc.Driver
-
अपने MySQL डेटाबेस का कनेक्शन URL निर्धारित करें
उदाहरण के लिए, यदि आप MAMP के अंतर्गत MySQL चला रहे हैं तो आप JDBC में जिस URL का उपयोग करेंगे वह कुछ इस तरह दिखेगा:
conn = DriverManager.getConnection ("jdbc:mysql://localhost:8889/db_name?user=root&password=root")
url इन घटकों में विभाजित है:
- प्रोटोकॉल:
jdbc:
- सबप्रोटोकॉल:
mysql
- डीबी-होस्ट:
localhost
- डीबी-पोर्ट:
8889
- उपयोगकर्ता नाम
- पासवर्ड
- प्रोटोकॉल:
-
इस क्लोजर स्क्रिप्ट को बनाएं, अपने यूआरएल से मेल खाने के लिए डेटाबेस कनेक्शन पैरामीटर संशोधित करें, test.clj के रूप में सहेजें, संकलित करें और चलाएं।
(use 'clojure.contrib.sql) ;;' satisfy prettify
(let [db-host "localhost"
db-port 8889
db-name "db_name"]
(def db {:classname "com.mysql.jdbc.Driver"
:subprotocol "mysql"
:subname (str "//" db-host ":" db-port "/" db-name)
:user "root"
:password "root"})
(with-connection db
(with-query-results rs ["select * from languages"]
(dorun (map #(println (:language :iso_code %)) rs)))))
; rs will be a sequence of maps,
; one for each record in the result set.
एनबी इस कोड को मार्क वोल्कमैन द्वारा लिखे गए समान कोड से एक्सेस करने के लिए अनुकूलित किया गया था। क्लोजर से डेटाबेस पोस्टग्रेज करता है