Założenie:masz już uruchomione Clojure i MySQL na swoim komputerze.
-
sprawdź i zbuduj clojure-contrib :
git clone git://github.com/richhickey/clojure-contrib.git cd clojure-contrib build
Umieść wynikowy clojure-contrib.jar na Twojej CLASSPATH .
-
Pobierz MySQL Connector/J i umieść mysql-connector-java-5.1.7-bin.jar na Twojej CLASSPATH
Być może będziesz musiał uruchomić JVM z tymi argumentami:
-Djdbc.drivers=com.mysql.jdbc.Driver
-
Określ adres URL połączenia bazy danych MySQL
Na przykład, jeśli używasz MySQL pod MAMP wtedy adres URL, którego użyjesz w JDBC, będzie wyglądał mniej więcej tak:
conn = DriverManager.getConnection ("jdbc:mysql://localhost:8889/db_name?user=root&password=root")
Adres URL jest podzielony na następujące składniki:
- protokół:
jdbc:
- podprotokół:
mysql
- host-db:
localhost
- port-db:
8889
- nazwa użytkownika
- hasło
- protokół:
-
Utwórz ten skrypt clojure, zmodyfikuj parametry połączenia z bazą danych, aby pasowały do Twojego adresu URL, zapisz jako test.clj, skompiluj i uruchom.
(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.
NB Ten kod został zaadaptowany z podobnego kodu napisanego przez Marka Volkmanna do dostępu do Baza danych Postgres z Clojure