前提:マシンでClojureとMySQLの両方がすでに実行されている。
-
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
- db-host:
localhost
- db-port:
8889
- ユーザー名
- パスワード
- プロトコル:
-
このclojureスクリプトを作成し、URLに一致するようにデータベース接続パラメーターを変更し、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.
注意:このコードは、MarkVolkmannによって作成された同様のコードから