![](/img/trans.png)
[英]PredictionIO: Installing JDBC driver for postgresql on OSX
[英]PostgreSQL - Installing JDBC driver
我正在努力解決如何在debian 6.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 / 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環境,請添加/ edit / 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());
}
}
}
注意 :使用您的配置更改數據庫,用戶和密碼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.