sql >> Database >  >> RDS >> Mysql

Hoe maak ik verbinding met een MySQL-database van Clojure?

Aanname:je hebt al zowel Clojure als MySQL op je machine draaien.

  1. afrekenen en bouwen clojure-contrib :

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

    Zet de resulterende clojure-contrib.jar op uw CLASSPATH .

  2. Download MySQL Connector/J en plaats de mysql-connector-java-5.1.7-bin.jar op uw CLASSPATH

    Misschien moet u uw JVM uitvoeren met deze argumenten:

    -Djdbc.drivers=com.mysql.jdbc.Driver
    
  3. Bepaal de verbindings-URL van uw MySQL-database

    Als u bijvoorbeeld MySQL uitvoert onder MAMP dan ziet de URL die u in JDBC zou gebruiken er ongeveer zo uit:

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

    De url is onderverdeeld in deze componenten:

    • protocol:jdbc:
    • subprotocol:mysql
    • db-host:localhost
    • db-poort:8889
    • gebruikersnaam
    • wachtwoord
  4. Maak dit clojure-script, pas de databaseverbindingsparameters aan zodat ze overeenkomen met uw URL, sla op als test.clj, compileer en voer uit.

    (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 Deze code is aangepast van vergelijkbare code geschreven door Mark Volkmann om toegang te krijgen tot een Postgres-database van Clojure



  1. Toegang verlenen tot v$ views (v$session ,v$instance)

  2. Cross join tussen meerdere schema's in MySQL. Privileges en prestaties

  3. Toegang geweigerd voor gebruiker 'www-data'@'localhost - hoe daarmee om te gaan?

  4. Gegevens in tabel invoegen met resultaat van een andere selectiequery