Mysql
 sql >> Database >  >> RDS >> Mysql

Come mi collego a un database MySQL da Clojure?

Presupposto:hai già sia Clojure che MySQL in esecuzione sulla tua macchina.

  1. verifica e crea clojure-contrib :

    git clone git://github.com/richhickey/clojure-contrib.git
    cd clojure-contrib
    build
    

    Inserisci il risultato clojure-contrib.jar sul tuo CLASSPATH .

  2. Scarica MySQL Connector/J e inserisci mysql-connector-java-5.1.7-bin.jar sul tuo CLASSPATH

    Potrebbe essere necessario eseguire la JVM con questi argomenti:

    -Djdbc.drivers=com.mysql.jdbc.Driver
    
  3. Determina l'URL di connessione del tuo database MySQL

    Ad esempio, se stai eseguendo MySQL in MAMP quindi l'URL che useresti in JDBC sarà simile a:

    conn = DriverManager.getConnection
            ("jdbc:mysql://localhost:8889/db_name?user=root&password=root")
    

    L'URL è suddiviso in questi componenti:

    • protocollo:jdbc:
    • sottoprotocollo:mysql
    • db-host:localhost
    • porta db:8889
    • nome utente
    • password
  4. Crea questo script clojure, modifica i parametri di connessione al database in modo che corrispondano al tuo URL, salva come test.clj, compila ed esegui.

    (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 Questo codice è stato adattato da un codice simile scritto da Mark Volkmann per accesso a Database Postgres di Clojure