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を照会します
PostgreSQLドライバーをTomcat\libフォルダーにインストールすることをお勧めします。ドライバjarをPATH_TO_Tomcat\libにコピーするだけです
クラスローダーの地獄で終わる可能性があるため、システムのCLASSPATHに何かを追加することはお勧めできません。これは、jar/classpathhellに到達する方法の例です。
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.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());
}
}
}
注:データベース、ユーザー、パスロッドを構成に合わせて変更します