web-dev-qa-db-ja.com

PostgreSQL-JDBCドライバーのインストール

Debian6.0サーバーにPostgreSQL用のJDBCドライバーをインストールする方法を理解するのに苦労しています。ドライバ.jarを次のディレクトリに移動しました。

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

次に、チュートリアルでこのコードの使用について説明します。

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

しかし、私はpostgreSQLに慣れていないので、この行をどこに置くべきか、またはこれが正しいかどうかさえわかりません。

私の質問は、jarファイルをこの場所に移動する以外に、postgreSQLインストールにJDBCドライバーをインストールするために実際に何をする必要があるかということです。


編集:これは私の設定です:

サーバー1: Tomcat + SOLR

サーバー2: JDBCドライバーを備えたPostgreSQL

サーバー1のSOLRは、JDBCドライバーを介してサーバー2のpostgreSQLを照会します

8
James Willson

PostgreSQLドライバーをTomcat\libフォルダーにインストールすることをお勧めします。ドライバjarをPATH_TO_Tomcat\libにコピーするだけです

クラスローダーの地獄で終わる可能性があるため、システムのCLASSPATHに何かを追加することはお勧めできません。これは、jar/classpathhellに到達する方法の例です。

  • 現在のアプリがpostgres9.1を使用していて、システムCLASSPATHでドライバーをセットアップするとします。
  • そのボックスで別のアプリを実行して、postgresの新しいバージョンと通信することにしました。バージョン9.2としましょう。
  • システムクラスパスを使用しているため、アプリランチャースクリプトがCLASSPATH = ""を設定してシステムクラスパスを空にするか、カスタムクラスローダーを使用しない限り、システムクラスパスがアプリケーションクラスパスよりも優先される傾向があるため、アプリ2は古いドライバーを使用することになります。親ファーストクラスのロードは行いません。

http://Tomcat.Apache.org/Tomcat-7.0-doc/jndi-datasource-examples-howto.html を参照してください。

7
ams

そのドライバーはクラスパス上にある必要があります。このコマンドを使用できます

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

または、ライブラリをプロジェクト構造にコピーすることもできます。

次に、チュートリアルにあるように接続を作成できます...

3
user219882

IDE(Idea、Eclipseなど)で、そのパスをライブラリとして追加する必要があります。

または、それを含むCLASSPATH変数を定義する場合は、コマンドラインからコンパイルして実行することもできます。

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

すべてのパッケージをインストールします。

# 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.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
Dedetok