有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

PostgreSQL/Clojure的java驱动程序问题

我正试图访问Clojure内部的Postgres数据库。我发现了大量使用DBs的项目示例,设置数据库如下:

(def db
    {:classname "org.postgresql.Driver"
     :subprotocol "postgresql"
     :subname "//localhost/testdb"
     :username "postgres"
     :password "postgres"})

然后我尝试访问数据库,如下所示:

(sql/with-connection db
    (sql/with-query-results recs ["select * from asdf"]
        (doseq [rec recs]
            (println rec))))

但是,我遇到了以下错误:

No suitable driver found for jdbc:postgresql://localhost/testdb
  [Thrown class java.sql.SQLException]

我假设问题出在:classname "org.postgresql.Driver",但我不确定解决方案是什么。我想我需要提供这个驱动程序,但我不确定在哪里可以得到它或把它放在哪里。在postgresql.org有一个可供下载的程序-我应该下载吗?或者我可以在我的项目设置中添加一些东西,让lein作为依赖项下载它吗?一旦我有了它,它会去哪里


编辑(回应@mtnygard): 我的项目里有这个。clj:

(defproject hello-www "1.0.0-SNAPSHOT"
    :dependencies [[org.clojure/clojure "1.2.1"]
                   [postgresql/postgresql "8.4-702.jdbc4"]
                   ...]

我的postgres版本是8.4:

[/media/data/dev/clojure/hello-www (postgres *)]$ postgres --version
postgres (PostgreSQL) 8.4.8

共 (1) 个答案

  1. # 1 楼答案

    你在正确的轨道上。异常表示类路径没有组织。postgresql。开车去任何地方

    查查贾瓦纳。com,我找到了postgresjdbc4驱动程序的this entry。根据运行时环境的其他部分,还有其他可用版本。您可以通过编辑项目来包含此内容。要添加此依赖项的clj文件:

    (defproject xxxxxxx
      ;;; other stuff
    
      :dependencies [[org.clojure/clojure "1.2.0"]
                     [postgresql/postgresql "9.0-801.jdbc4"]]
     )