我正在尝试使用 Maven 开发 Java 应用程序,同时使用 Hibernate 和 PostgreSQL 数据库进行持久性。我不明白我应该如何将 PostgreSQL 驱动程序连接到我的应用程序。我知道您在 Maven 的 pom.xml 文件中添加了依赖项,该文件从远程存储库中查找 jars,但是其他 jars 呢?
5 回答
PostgreSQL 驱动程序 jar 包含在 Maven 的中央存储库中:
对于最高 9.1 的 PostgreSQL,请使用:
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>VERSION</version>
</dependency>
或 9.2+
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>VERSION</version>
</dependency>
(感谢@Caspar 的更正)
更新最新版本:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.14</version>
</dependency>
希望能帮助到你!
根据您的 PostgreSQL 版本,您需要将 postgresql 驱动程序添加到您的pom.xml
文件中。
对于 PostgreSQL 9.1,这将是:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<name>Your project name.</name>
<dependencies>
<dependency>
<groupId>postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>9.1-901-1.jdbc4</version>
</dependency>
</dependencies>
</project>
您可以从 maven 的中央存储库获取依赖项(以及任何其他依赖项)的代码
如果您使用的是 postgresql 9.2+:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<name>Your project name.</name>
<dependencies>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.2.1</version>
</dependency>
</dependencies>
</project>
您可以从以下位置检查最新版本和依赖项片段:
来自 PostgreSQL 站点,日期为 2016 年 2 月 4 日(https://jdbc.postgresql.org/download.html):
“这是驱动程序的当前版本。除非您有特殊要求(运行旧应用程序或 JVM),否则这是您应该使用的驱动程序。它支持 Postgresql 7.2 或更高版本,需要 1.6 或更高版本的 JVM。它包含对SSL 和 javax.sql 包。如果你使用的是 1.6 那么你应该使用 JDBC4 版本。如果你使用的是 1.7 那么你应该使用 JDBC41 版本。如果你使用的是 1.8 那么你应该使用 JDBC42 版本如果你正在使用一个早于 1.6 的 java 版本,那么您将需要使用驱动程序的 JDBC3 版本,这必然不是最新的”
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>