Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como me conecto a um banco de dados MySQL do Clojure?


Suposição:você já tem Clojure e MySQL rodando em sua máquina.

  1. faça o checkout e crie clojure-contrib :
    git clone git://github.com/richhickey/clojure-contrib.git
    cd clojure-contrib
    build
    

    Coloque o clojure-contrib.jar resultante em seu CLASSPATH .

  2. Baixe o MySQL Connector/J e coloque o mysql-connector-java-5.1.7-bin.jar em seu CLASSPATH

    Talvez você precise executar sua JVM com estes argumentos:
    -Djdbc.drivers=com.mysql.jdbc.Driver
    

  3. Determine a URL de conexão do seu banco de dados MySQL

    Por exemplo, se você estiver executando o MySQL em MAMP então a URL que você usaria no JDBC será algo como:
    conn = DriverManager.getConnection
            ("jdbc:mysql://localhost:8889/db_name?user=root&password=root")
    

    O URL é dividido nestes componentes:
    • protocolo:jdbc:
    • subprotocolo:mysql
    • db-host:localhost
    • porta db:8889
    • nome de usuário
    • senha

  4. Faça este script clojure, modifique os parâmetros de conexão do banco de dados para corresponder à sua URL, salve como test.clj, compile e execute.
    (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 Este código foi adaptado de um código semelhante escrito por Mark Volkmann para acessar um Banco de dados Postgres do Clojure