sql >> データベース >  >> RDS >> Mysql

ClojureからMySQLデータベースに接続するにはどうすればよいですか?

    前提:マシンでClojureとMySQLの両方がすでに実行されている。

    1. clojure-contrib をチェックアウトしてビルドします :

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

      結果のclojure-contrib.jarを配置します クラスパス

    2. MySQL Connector /J をダウンロードします mysql-connector-java-5.1.7-bin.jarを配置します クラスパス

      次の引数を使用してJVMを実行する必要がある場合があります:

      -Djdbc.drivers=com.mysql.jdbc.Driver
      
    3. MySQLデータベースの接続URLを決定します

      たとえば、MAMP でMySQLを実行している場合 その場合、JDBCで使用するURLは次のようになります。

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

      URLは次のコンポーネントに分類されます:

      • プロトコル:jdbc:
      • サブプロトコル:mysql
      • db-host:localhost
      • db-port:8889
      • ユーザー名
      • パスワード
    4. このclojureスクリプトを作成し、URLに一致するようにデータベース接続パラメーターを変更し、test.cljとして保存し、コンパイルして実行します。

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

    注意:このコードは、MarkVolkmannによって作成された同様のコードから access a ClojureのPostgresデータベース



    1. mysqlクエリPHP:特定のアイテムを最初にしてから、残りのアイテムを並べ替えたい

    2. java.sql.SQLExceptionパラメータインデックスが範囲外です(1>パラメータの数。0)

    3. 1970年より前の日付にstrtotimeを使用する

    4. Laravelの移行(errno:150外部キー制約が正しく形成されていません)