Asumsi:Anda sudah menjalankan Clojure dan MySQL di mesin Anda.
-
checkout dan buat clojure-contrib :
git clone git://github.com/richhickey/clojure-contrib.git cd clojure-contrib build
Masukkan clojure-contrib.jar yang dihasilkan di CLASSPATH . Anda .
-
Unduh Konektor MySQL/J dan letakkan mysql-connector-java-5.1.7-bin.jar di CLASSPATH . Anda
Anda mungkin harus menjalankan JVM dengan argumen berikut:
-Djdbc.drivers=com.mysql.jdbc.Driver
-
Tentukan URL koneksi database MySQL Anda
Misalnya, jika Anda menjalankan MySQL di bawah MAMP maka URL yang akan Anda gunakan di JDBC akan terlihat seperti:
conn = DriverManager.getConnection ("jdbc:mysql://localhost:8889/db_name?user=root&password=root")
Url dipecah menjadi komponen berikut:
- protokol:
jdbc:
- subprotokol:
mysql
- db-host:
localhost
- port db:
8889
- nama pengguna
- sandi
- protokol:
-
Buat skrip clojure ini, ubah parameter koneksi database agar sesuai dengan URL Anda, simpan sebagai test.clj, kompilasi dan jalankan.
(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 Kode ini diadaptasi dari kode serupa yang ditulis oleh Mark Volkmann untuk mengakses a Basis data Postgres dari Clojure