Ada*_*dam 3 clojure compojure noir
我是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
Run Code Online (Sandbox Code Playgroud)
我是否必须接受这个警告,或者有办法吗?我正在使用以下方法导入JDBC库:
(use 'clojure.java.jdbc)
Run Code Online (Sandbox Code Playgroud)
您可以通过指定要导入的确切绑定来避免此问题:
(use '[clojure.java.jdbc :only [insert-values transaction]])
(transaction
(insert-values ...))
Run Code Online (Sandbox Code Playgroud)
另一个选择是:exclude
违规绑定:
(use '[clojure.java.jdbc :exclude [resultset-seq]])
(transaction
(insert-values ...))
Run Code Online (Sandbox Code Playgroud)
您也可以使用require
:
(require '[clojure.java.jdbc :as db])
(db/transaction
(db/insert-values ...))
Run Code Online (Sandbox Code Playgroud)
关于向前兼容性,require
可以说是最安全的.使用:only
只是稍微不那么干净,但仍然是一个非常好的方法(并且当它中断时很容易修复).排除当前有问题的绑定可能是解决问题最不具备解决方法的方法,因为其他冲突的绑定可以随时出现,并追踪从哪里导入的内容可能很棘手.
归档时间: |
|
查看次数: |
719 次 |
最近记录: |