PostgreSQL - 安装 JDBC 驱动程序

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

我很难弄清楚应该如何在我的 debian 6.0 服务器上安装 PostgreSQL 的 JDBC 驱动程序。我已将驱动程序 .jar 移至以下目录:

/usr/local/pgsql/share/java/postgresql.jar. 

然后教程讲到使用这段代码:

Class.forName("org.postgresql.Driver");

但是,由于我是 postgreSQL 新手,我不知道应该把这一行放在哪里,或者这是否正确。

我的问题是,除了将 jar 文件移动到此位置之外,我实际上需要做什么才能在我的 postgreSQL 安装上安装 JDBC 驱动程序?


编辑:这是我的设置:

服务器1: 汤姆猫+SOLR

服务器2: 带有 JDBC 驱动程序的 PostgreSQL

服务器 1 上的 SOLR 通过 JDBC 驱动程序查询服务器 2 上的 postgreSQL

java sql postgresql jdbc debian
5个回答
7
投票

最好将 PostgreSQL 驱动程序安装到 tomcat\lib 文件夹中。只需将驱动程序 jar 复制到 PATH_TO_TOMCAT\lib

向系统 CLASSPATH 添加内容不是一个好主意,因为您可能会陷入类加载器地狱。这是一个如何最终陷入 jar/classpath 地狱的示例。

  • 假设当前应用程序使用 postgres 9.1 并且您在系统 CLASSPATH 上设置驱动程序
  • 您决定在该盒子上运行另一个应用程序,该应用程序与较新版本的 postgres 进行对话,比如版本 9.2
  • 因为您使用的是系统类路径,所以应用程序 2 最终将使用旧驱动程序,因为系统类路径往往优先于应用程序类路径,除非应用程序启动器脚本设置 CLASSPATH="" 来清空系统类路径或使用自定义类不执行父优先类加载的加载器。

参见 http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html


3
投票

该驱动程序必须位于您的类路径上。你可以使用这个命令

java -cp /usr/local/pgsql/share/java/postgresql.jar my.app.MainClass

或者您可以将库复制到您的项目结构中。

然后您可以按照教程所述创建连接...


2
投票

安装所有软件包:

# apt-get install libpostgresql-jdbc-java libpostgresql-jdbc-java-doc

要为所有用户设置 Java 环境,请添加/编辑 /etc/environment:

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
CLASSPATH=".:/usr/share/java/mysql.jar:/usr/share/java/postgresql-jdbc4.jar"

注意:使用您的 JDK 更改 /usr/lib/jvm/java-8-openjdk-amd64

注意:如果您更喜欢使用 postgresql-jdbc3,请将 /usr/share/java/postgresql-jdbc4.jar 替换为 /usr/share/java/postgresql.jar

使用此代码测试您的连接:

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.SQLException;

import java.util.Properties;

class TestDB {

    /*

      /usr/share/java

      http://dev.mysql.com/doc/connector-j/5.1/en/

      https://jdbc.postgresql.org/documentation/documentation.html

    */

   static Connection conn = null;   

   public static void main(String[] args) {
      // PostgreSQL

      try {

         System.out.println("Loading Class org.postgresql.Driver");

         Class.forName("org.postgresql.Driver");

         System.out.println("Loading org.postgresql.Driver Successful");

         String url = "jdbc:postgresql://localhost/database";

         Properties props = new Properties();

         props.setProperty("user","user");

         props.setProperty("password","password");

         props.setProperty("ssl","true");

         conn = DriverManager.getConnection(url, props); 

         // or

         url = "jdbc:postgresql://localhost/database?user=user&password=password&ssl=true";

         Connection conn = DriverManager.getConnection(url);

         // Do something with the Connection

         System.out.println("Test Connection Successful");

      } catch (SQLException ex) {

         // handle any errors

         System.out.println("SQLException: " + ex.getMessage());

         System.out.println("SQLState: " + ex.getSQLState());

         System.out.println("VendorError: " + ex.getErrorCode());

      } catch (ClassNotFoundException ex) {

         System.out.println("Class Not Found: " + ex.getMessage());

      }

   }

}

注意:根据您的配置更改数据库、用户和密码

http://www.garasiku.web.id/web/joomla/index.php/java/112-debian-jessie-installing-openjdk-8-mysql-jdbc-and-postgresql-jdbc


1
投票

在您的 IDE(Idea、Eclipse 等)中,您需要将该路径添加为库。

或者,如果您定义了包含该变量的 CLASSPATH 变量,则可以从命令行编译和执行。

export CLASSPATH=/usr/local/pgsql/share/java/postgresql.jar
javac -classpath $CLASSPATH MyDBApp.java
java -cp $CLASSPATH MyDBApp

0
投票

解决Dbeaver先连接Postgrsql Driver时出现的问题 1.您需要从https://jdbc.postgresql.org/download/链接

下载.jar文件(例如postgresql-42.7.2.jar)
  1. 然后你必须去“编辑驱动程序”Postgresql

  2. 然后单击属性

  3. 单击类路径

  4. 您将看到+按钮(添加)

  5. 并将您本地下载的路径添加到 GlobalLibraries 输入中,(例如 C:\Users\Downloads\postgresql-42.7.2.jar)

7.最后单击应用并关闭按钮

快乐编码)

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