2017-01-23 22 views
1

這是我已經試過了,開始clojure.java.jdbc和包含數據庫連接信息的地圖:如何在Clojure中使用JDBC創建數據庫?

(:require '[clojure.java.jdbc :as j])) 

(def mysql-db {:dbtype "mysql", :dbname "changelog_development", :user "root", :password "", :useSSL true, :verifyServerCertificate false} 

首先我試圖用execute但由於數據庫不存在,就無法使用給定的連接配置:

(j/execute! mysql-db "CREATE DATABASE changelog_development") ;; MySQLSyntaxErrorException Unknown database 'changelog_development'  

所以我刪除dbname鍵,然後再次嘗試,但錯誤說我有一個缺少參數:

(j/execute! (dissoc mysql-db :dbname) "CREATE DATABASE changelog_development") ;; IllegalArgumentException db-spec {:dbtype "mysql", :user "root", :password "", :useSSL true, :verifyServerCertificate false} is missing a required parameter 

回答

4

clojure.java.jdbc連接規範有許多可能的格式。具有:dbtype,:user等密鑰的那個要求你也指定一個:dbname

您也可以使用連接URI,而不是指定連接規範,然後再執行你的語句:

{:connection-uri "jdbc:mysql://localhost/?user=root&password="}

相關問題