为什么JVM找不到Postgresql JDBC驱动?

问题描述 投票:0回答:1

我知道这个问题以前有人问过,但是现有的答案并没有帮助。

现有的答案倾向于要么告诉你把postgresql-.jar放在pathtodlibb中,我就是这么做的;要么围绕MySQL。我已经尝试了>5个不同的答案,但没有任何帮助。

这是我在Clojure REPL运行的情况。

(require '[next.jdbc :as jdbc])
(def db {:dbtype "postgres" :dbname "whatever" :user "whoever" :password "yeahright"})
(jdbc/get-connection db)

而我得到这个错误。

Execution error (SQLException) at java.sql.DriverManager/getConnection (DriverManager.java:702).
 No suitable driver found for jdbc:postgresql://127.0.0.1:5432/<db_name>

我知道postgresql-42.2.12.jar在我的电脑上的位置,我用:classpath-add在project.clj中添加了这个路径。我已经仔细检查了URL的语法,目前来看是正确的。

Java版本。

  $ java -version
  java version "10.0.1" 2018-04-17
  Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
  Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

  $ lein -version
  Leiningen 2.9.1 on Java 10.0.1 Java HotSpot(TM) 64-Bit Server VM

我在Ubuntu & Mac上也有同样的问题。有人知道这是怎么回事吗?

postgresql jdbc clojure leiningen
1个回答
2
投票

根据 next.jdbc 入门 指南 https:/cljdoc.orgdseancorfieldnext.jdbcCURRENTdocgetting-started。

"此外,您还需要为您希望用于任何数据库的JDBC驱动程序添加依赖关系。"

"对于 lein 这意味着在你的 :dependencies 矢量 project.clj:

[org.postgresql/postgresql "42.2.10"]

(那是最新的版本 next.jdbc 是在写这篇文章的时候,2020年5月23日测试的)。)


2
投票

确保你的 project.clj 含有一个这样的条目,在

[org.postgresql/postgresql "42.2.12"]

:dependencies 矢量。

© www.soinside.com 2019 - 2024. All rights reserved.