Hypothèse :vous avez déjà Clojure et MySQL en cours d'exécution sur votre machine.
-
commander et créer clojure-contrib :
git clone git://github.com/richhickey/clojure-contrib.git cd clojure-contrib build
Mettez le résultat clojure-contrib.jar sur votre CLASSPATH .
-
Télécharger Connecteur MySQL/J et mettez le mysql-connector-java-5.1.7-bin.jar sur votre CLASSPATH
Vous devrez peut-être exécuter votre JVM avec ces arguments :
-Djdbc.drivers=com.mysql.jdbc.Driver
-
Déterminez l'URL de connexion de votre base de données MySQL
Par exemple, si vous exécutez MySQL sous MAMP alors l'URL que vous utiliseriez dans JDBC ressemblera à :
conn = DriverManager.getConnection ("jdbc:mysql://localhost:8889/db_name?user=root&password=root")
L'URL est décomposée en ces composants :
- protocole :
jdbc:
- sous-protocole :
mysql
- db-host :
localhost
- port db :
8889
- nom d'utilisateur
- mot de passe
- protocole :
-
Créez ce script clojure, modifiez les paramètres de connexion à la base de données pour qu'ils correspondent à votre URL, enregistrez sous test.clj, compilez et exécutez.
(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 Ce code a été adapté d'un code similaire écrit par Mark Volkmann pour accéder à un Base de données Postgres de Clojure