如何在Clojure中使用JDBC创建数据库?

时间:2017-01-23 11:27:28

标签: clojure

这是我尝试过的,从clojure.java.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  

1 个答案:

答案 0 :(得分:4)

clojure.java.jdbc连接规范有许多可能的格式。包含:dbtype:user等密钥的密码要求您同时指定:dbname

您也可以使用连接URI指定连接规范,然后再次执行语句:

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