Antagande:du har redan både Clojure och MySQL igång på din maskin.
-
kassa och bygg clojure-contrib :
git clone git://github.com/richhickey/clojure-contrib.git cd clojure-contrib build
Lägg den resulterande clojure-contrib.jar på din CLASSPATH .
-
Ladda ner MySQL Connector/J och placera mysql-connector-java-5.1.7-bin.jar på din CLASSPATH
Du kanske måste köra din JVM med dessa argument:
-Djdbc.drivers=com.mysql.jdbc.Driver
-
Bestäm anslutningsadressen till din MySQL-databas
Till exempel, om du kör MySQL under MAMP då ser webbadressen som du skulle använda i JDBC ut ungefär så här:
conn = DriverManager.getConnection ("jdbc:mysql://localhost:8889/db_name?user=root&password=root")
URL:en är uppdelad i dessa komponenter:
- protokoll:
jdbc:
- underprotokoll:
mysql
- db-host:
localhost
- db-port:
8889
- användarnamn
- lösenord
- protokoll:
-
Gör detta clojure-skript, ändra databasanslutningsparametrarna så att de matchar din URL, spara som test.clj, kompilera och kör.
(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.
OBS! Denna kod har anpassats från liknande kod skriven av Mark Volkmann för att få åtkomst till en Postgres databas från Clojure