【问题标题】:Missing required parameter in clojure.java.jdbcclojure.java.jdbc 中缺少必需的参数
【发布时间】:2012-08-30 12:42:36
【问题描述】:

我一直在为 clojure.java.jdbc 中的 db-specs 问题而烦恼。我想知道最近是否有一些行为发生了变化,因为直到最近才发生了与此几乎相同的事情。

我的 db-spec 如下所示:

(defn prod []
  "Yes, I've verified all of the loaded properties are accurate for the connection"
  { :classname (get-property "acedia.bbts")
  :subprotocol (get-property "acedia.bbts.subprotocol")
  :subname (str "@" (get-property "acedia.bbts.dev.host") ":" (get-property "acedia.bbts.dev.port") ":" (get-property "acedia.bbts.dev.sid"))
  :user (get-property "acedia.bbts.dev.user")
  :password (get-property "acedia.bbts.dev.password")})

然后在 REPL:

user => (prod)
{:classname "oracle.jdbc.driver.OracleDriver", :subprotocol "oracle", :subname "@hostname:1521:bbts", :user "user", :password "pass"}

user=> (with-connection bbts-dev (with-query-results rs ["select * from customer where rownum < 10"] (dorun (map #(println (:firstname %)) rs))))

user => (use 'clojure.stacktrace)
nil
user => (e)
java.lang.IllegalArgumentException: db-spec acedia.db.bbts$prod@4d24bd93 is missing a required parameter
at clojure.java.jdbc.internal$get_connection.invoke (internal.clj:147)
  clojure.java.jdbc.internal$with_connection_STAR_.invoke (internal.clj:154)
  user$eval1116.invoke (NO_SOURCE_FILE:1)
  clojure.lang.Compiler.eval (Compiler.java:6465)
  clojure.lang.Compiler.eval (Compiler.java:6431)
  clojure.core$eval.invoke (core.clj:2795)
  clojure.main$repl$read_eval_print__5967.invoke (main.clj:244)
  clojure.main$repl$fn__5972.invoke (main.clj:265)
nil

我也不知道NO_SOURCE_FILE 指的是什么。我已经验证了 oracle 驱动程序也可以访问、加载等。 db-spec 中可能缺少什么参数?

注意:我对 MS SQL Server 也有同样的问题。

【问题讨论】:

  • user$eval1116.invoke (NO_SOURCE_FILE:1) 是指您在 REPL 中键入

标签: database jdbc clojure


【解决方案1】:

问题在于prod 是一个函数,因此要么将 prod 更改为 (def prod {all props here}),要么在需要时调用 prod 函数:(with-connection (prod) (with-query-results

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-05
    • 2018-10-28
    • 2018-12-01
    • 2016-06-29
    • 2018-06-20
    相关资源
    最近更新 更多