java - Clojure 的 require 函数中的别名不起作用

标签 java jdbc clojure

我想使用 clojure.java.jdbc 来运行一些 sql 查询。 repl 给了我 CompilerException java.lang.RuntimeException: No such namespace: jdbc

代码和异常是

  (require `[clojure.java.jdbc :as jdbc])
  (def db-spec {:classname "com.mysql.jdbc.Driver" :subprotocol "mysql" :subname   "//localhost:3306/foo" :user "root" :password "1234"})
  (jdbc/query db-spec ["select * from client"])
  => nil
  => #'gaga.core/db-spec
  CompilerException java.lang.RuntimeException: No such namespace: jdbc, compiling:   (C:\Users\User\.IdeaIC14\system\tmp\form-init1177514063701175563.clj:3:1) 

在我看来,require 函数中的别名定义不起作用。如果我使用全名 clojure.java.jdbc 来替换上面代码中的 jdbc 别名,则一切似乎都有效:

(require `[clojure.java.jdbc :as jdbc])
(def db-spec {:classname "com.mysql.jdbc.Driver" :subprotocol "mysql" :subname "//localhost:3306/foo" :user "root" :password "1234"})
(clojure.java.jdbc/query db-spec ["select * from client"])
=> nil
=> #'gaga.core/db-spec
=> ({:birthday #inst "1990-09-08T14:00:00.000-00:00", :gender 0, :addressid 1, :mobile "13890879283", :idnum "31090818790987", :idtype 0, :name "xiaomao", :version 0, :id 1})

我的project.cli在下面

(defproject gaga "0.1.0-SNAPSHOT"
            :description "FIXME: write description"
            :url "http://example.com/FIXME"
            :license {:name "Eclipse Public License"
                      :url  "http://www.eclipse.org/legal/epl-v10.html"}
            :dependencies [[org.clojure/clojure "1.6.0"] [org.clojure/java.jdbc "0.3.6"] [mysql/mysql-connector-java "5.1.35"]]
            :main ^:skip-aot gaga.core
            :target-path "target/%s"
            :profiles {:uberjar {:aot :all}})

有人知道原因吗

最佳答案

所以基本上我测试了 require 中的语法错误 你必须使用

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

表示使用 '(撇号) 代替 `(Acute)

关于java - Clojure 的 require 函数中的别名不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29443303/

相关文章:

java - 资源规范不允许错误

Java 迷宫 - 仅播放路线可见

java - JTextArea 文本消失

java - 迭代列以查找具有最后一个非零值的列

asynchronous - Clojure core.async,将 (go... ) block 放在 (doseq ..) 内部和放在外部有什么区别?

java - 为什么我不能使用扩展类型扩展 Clojure 的 IFn?

java - 有没有用于域名查找的java库?

java - JSP和Mysql中的com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException

java - 什么是更深层次的c3p0?

windows - Datomic dev-local 可以安装在 Windows 上吗?