我是 Clojure 的新手,正在使用 Noir 框架构建一个 Web 应用程序(与 Compojure 非常相似,事实上我认为它是具有不同请求处理程序层的 Compojure)。导入 JDBC 库时收到警告:
WARNING: resultset-seq already refers to: #'clojure.core/resultset-seq in namespace: webapp.models.database, being replaced by: #'clojure.java.jdbc/resultset-seq
我是否必须接受这个警告,还是有办法解决它?我使用以下方式导入 JDBC 库:
(use 'clojure.java.jdbc)
您可以通过指定要导入的确切绑定来避免该问题:
(use '[clojure.java.jdbc :only [insert-values transaction]])
(transaction
(insert-values ...))
另一种选择是:exclude
有问题的绑定:
(use '[clojure.java.jdbc :exclude [resultset-seq]])
(transaction
(insert-values ...))
你也可以只使用require
反而:
(require '[clojure.java.jdbc :as db])
(db/transaction
(db/insert-values ...))
关于向前兼容性,require
可以说是最安全的。使用:only
只是稍微不太干净,但仍然是一个很好的方法(并且在损坏时很容易修复)。排除当前有问题的绑定可能是解决问题的最不适合未来的方法,因为其他冲突的绑定可能随时出现,并且跟踪从何处导入的内容可能很棘手。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)