29
Assumption: you already have both Clojure and MySQL running on your machine.
假設:您的機器上已經運行了Clojure和MySQL。
checkout and build clojure-contrib:
檢查和構建clojure-contrib: git clone git://github.com/richhickey/clojure-contrib.git
cd clojure-contrib
build
Put the resulting clojure-contrib.jar on your CLASSPATH.
把結果clojure-contrib。jar在您的類路徑中。
Download MySQL Connector/J and put the mysql-connector-java-5.1.7-bin.jar on your CLASSPATH
下載MySQL Connector/J並放置MySQL - Connector -java- 5.7 bin。jar在您的類路徑
You might have to run your JVM with these arguments:
您可能需要使用以下參數來運行JVM: -Djdbc.drivers=com.mysql.jdbc.Driver
Determine the connection URL of your MySQL database
確定MySQL數據庫的連接URL
For example, if you are running MySQL under MAMP then the URL that you would use in JDBC will look something like:
例如,如果您在MAMP下運行MySQL,那么您在JDBC中使用的URL將如下所示: conn = DriverManager.getConnection
("jdbc:mysql://localhost:8889/db_name?user=root&password=root")
The url is broken down into these components:
url分為以下幾個部分:
protocol: jdbc:
協議:jdbc:
subprotocol: mysql
subprotocol:mysql
db-host: localhost
db-host:localhost
db-port: 8889
db-port:8889
username
用戶名
password
密碼
Make this clojure script, modify the database connection parameters to match your URL, save as test.clj, compile and run.
創建這個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.
NB This code was adapted from similar code written by Mark Volkmann to access a Postgres database from Clojure
NB本代碼改編自Mark Volkmann為從Clojure訪問Postgres數據庫而編寫的類似代碼