PostgreSQL-Установка драйвера JDBC

мне трудно понять, как я должен устанавливать драйвер JDBC для PostgreSQL на моем сервере debian 6.0. Я перевез водителя .jar в следующий каталог:

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

тогда учебники говорят об использовании этого кода:

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

однако, поскольку я новичок в postgreSQL, я понятия не имею, где я должен ставить эту строку, или если это даже правильно.

мой вопрос, за исключением перемещения файла jar в это место, что мне делать на самом деле нужно сделать, чтобы установить драйвер JDBC на мою установку postgreSQL?


EDIT: это моя настройка:

сервер 1: Tomcat + SOLR

сервер 2: PostgreSQL с драйвером JDBC

SOLR на сервере 1 запрашивает postgreSQL на сервере 2 через драйвер JDBC

4 ответов


лучше всего установить драйвер PostgreSQL в папку tomcat\lib. Просто скопируйте jar драйвера в PATH_TO_TOMCAT\lib

Не рекомендуется добавлять вещи в системный путь к классам, потому что вы можете закончить в классе loader hell. Вот пример того, как вы оказываетесь в аду jar / classpath.

  • предположим, что текущее приложение использует postgres 9.1, и вы устанавливаете драйвер на системном пути к классам
  • вы решили запустить другое приложение на этом поле, который говорит с новая версия Постгреса, допустим, версия 9.2
  • поскольку вы используете приложение system classpath 2 в конечном итоге будет использовать старый драйвер, потому что системный classpath имеет тенденцию иметь приоритет над classpath приложений, если сценарий запуска приложения не устанавливает CLASSPATH="", чтобы очистить системный classpath или использует пользовательский загрузчик классов, который не выполняет загрузку родительского первого класса.

посмотреть http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html


этот драйвер должен быть на вашем пути к классам. Вы можете использовать эту команду

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

или вы можете скопировать библиотеку в структуру проекта.

затем вы можете создавать соединения, как говорят учебники...


в вашей IDE (Idea, Eclipse и т. д.) Вам нужно добавить этот путь в качестве библиотеки.

кроме того, вы можете компилировать и выполнять из командной строки, Если вы определяете переменную CLASSPATH, которая включает это.

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

установить все пакеты:

# 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"

Примечание: изменить /usr/lib/jvm / java-8-openjdk-amd64 с помощью JDK

Примечание: если вы предпочитаете использовать postgresql-jdbc3, замените /usr/share/java/postgresql-jdbc4.jar с /usr / share / java / postgresql.Джар

проверьте соединение с помощью этого кода:

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());

      }

   }

}

Примечание: изменение базы данных, пользователя и passwrod с вашей конфигурацией

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