我正在尝试用Maven开发一个Java应用程序,同时使用Hibernate和PostgreSQL数据库来实现持久性。我不明白我应该如何将PostgreSQL驱动程序连接到我的应用程序。我得到你在Maven的pom.xml文件中添加依赖项,它从远程存储库中找到jar,但是其他jar呢?
答案 0 :(得分:97)
PostgreSQL驱动程序jar包含在Maven的Central Repository中:
对于最高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的更正)
答案 1 :(得分:22)
更新最新版本:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<version>42.1.1</version>
</dependency>
希望它有所帮助!
答案 2 :(得分:17)
根据您的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>
您可以从以下网址查看最新版本和相关性摘要:
答案 3 :(得分:2)
来自网站PostgreSQL,日期为02/04/2016(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 驱动程序的版本,必然不是当前的“
答案 4 :(得分:0)
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>runtime</scope>
</dependency>