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

Hvordan forbinder jeg til en MySQL-database fra Clojure?

Antagelse:du har allerede både Clojure og MySQL kørende på din maskine.

  1. kassen og byg clojure-contrib :

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

    Sæt den resulterende clojure-contrib.jar på din CLASSPATH .

  2. Download MySQL Connector/J og sæt mysql-connector-java-5.1.7-bin.jar på din CLASSPATH

    Du skal muligvis køre din JVM med disse argumenter:

    -Djdbc.drivers=com.mysql.jdbc.Driver
     
  3. Bestem forbindelses-URL'en til din MySQL-database

    For eksempel, hvis du kører MySQL under MAMP så vil den URL, som du vil bruge i JDBC, se nogenlunde sådan ud:

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

    URL'en er opdelt i disse komponenter:

    • protokol:jdbc:
    • underprotokol:mysql
    • db-host:localhost
    • db-port:8889
    • brugernavn
    • adgangskode
  4. Lav dette clojure-script, rediger databaseforbindelsesparametrene, så de matcher din URL, gem som test.clj, kompiler og kør.

(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 Denne kode er tilpasset fra lignende kode skrevet af Mark Volkmann for at adgang til en Postgres database fra Clojure



  1. hvordan gemmer man tags (søgeord) i databasen?

  2. Mysql:Valg af værdier mellem to kolonner

  3. Se om lat / lang falder inden for en polygon ved hjælp af mysql

  4. MySQL SELECT stigningstæller