sql >> Base de Datos >  >> RDS >> Mysql

¿Cómo me conecto a una base de datos MySQL desde Clojure?

Suposición:ya tiene Clojure y MySQL ejecutándose en su máquina.

  1. pagar y compilar clojure-contrib :

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

    Coloque el clojure-contrib.jar resultante en tu CLASSPATH .

  2. Descargar Conector MySQL/J y pon el mysql-connector-java-5.1.7-bin.jar en tu CLASSPATH

    Es posible que deba ejecutar su JVM con estos argumentos:

    -Djdbc.drivers=com.mysql.jdbc.Driver
    
  3. Determine la URL de conexión de su base de datos MySQL

    Por ejemplo, si está ejecutando MySQL bajo MAMP entonces la URL que usaría en JDBC se parecerá a:

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

    La URL se divide en estos componentes:

    • protocolo:jdbc:
    • subprotocolo:mysql
    • db-host:localhost
    • puerto-db:8889
    • nombre de usuario
    • contraseña
  4. Cree este script clojure, modifique los parámetros de conexión de la base de datos para que coincidan con su URL, guárdelo como test.clj, compile y ejecútelo.

    (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.

Nota:este código fue adaptado de un código similar escrito por Mark Volkmann para acceder a un Base de datos Postgres de Clojure