Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Wie verbinde ich mich von Clojure aus mit einer MySQL-Datenbank?

Annahme:Sie haben bereits sowohl Clojure als auch MySQL auf Ihrem Rechner ausgeführt.

  1. auschecken und clojure-contrib erstellen :

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

    Legen Sie die resultierende clojure-contrib.jar ab auf Ihrem CLASSPATH .

  2. Laden Sie MySQL Connector/J herunter und legen Sie die mysql-connector-java-5.1.7-bin.jar ab auf Ihrem CLASSPATH

    Möglicherweise müssen Sie Ihre JVM mit diesen Argumenten ausführen:

    -Djdbc.drivers=com.mysql.jdbc.Driver
    
  3. Ermitteln Sie die Verbindungs-URL Ihrer MySQL-Datenbank

    Zum Beispiel, wenn Sie MySQL unter MAMP ausführen dann sieht die URL, die Sie in JDBC verwenden würden, in etwa so aus:

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

    Die URL wird in diese Komponenten zerlegt:

    • Protokoll:jdbc:
    • Unterprotokoll:mysql
    • db-host:localhost
    • DB-Port:8889
    • Benutzername
    • Passwort
  4. Erstellen Sie dieses Clojure-Skript, ändern Sie die Datenbankverbindungsparameter so, dass sie mit Ihrer URL übereinstimmen, speichern Sie sie als test.clj, kompilieren und führen Sie sie aus.

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

Hinweis:Dieser Code wurde von einem ähnlichen Code angepasst, der von Mark Volkmann geschrieben wurde, um auf a zuzugreifen Postgres-Datenbank von Clojure