Reputation: 593
I'm having a hard time working out how I should be installing the JDBC driver for PostgreSQL on my debian 6.0 server. I have moved the driver .jar into the following directory:
/usr/local/pgsql/share/java/postgresql.jar.
Then the tutorials talk about using this code:
Class.forName("org.postgresql.Driver");
However, since I am new to postgreSQL I have no idea where I should be putting this line, or if this is even correct.
My question is, short of moving the jar file to this location, what do I actually need to do in order to install the JDBC driver on my postgreSQL installation?
EDIT: This is my setup:
Server 1: Tomcat + SOLR
Server 2: PostgreSQL with JDBC driver
SOLR on server 1 queries postgreSQL on server 2 via the JDBC driver
Upvotes: 11
Views: 52037
Reputation: 1
For resolving this problem when Dbeaver connecting to Postgrsql Driver first 1.You need to download your .jar file (for example postgresql-42.7.2.jar) from https://jdbc.postgresql.org/download/ link
Then you must go to 'Edit Driver' Postgresql
Then click the Properties
Click the Classpath
you will see the + button(Add)
And add your local downloaded path here to GlobalLibraries input, (For example C:\Users\Downloads\postgresql-42.7.2.jar)
7.At the end click Apply and Close button
Happy Coding)
Upvotes: -1
Reputation: 65
Install all packages:
# apt-get install libpostgresql-jdbc-java libpostgresql-jdbc-java-doc
To set Java Environment for all users, add/edit /etc/environment:
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64"
CLASSPATH=".:/usr/share/java/mysql.jar:/usr/share/java/postgresql-jdbc4.jar"
Note: change /usr/lib/jvm/java-8-openjdk-amd64 with your JDK
Note: if you prefered to use postgresql-jdbc3, replace /usr/share/java/postgresql-jdbc4.jar with /usr/share/java/postgresql.jar
Test your connection using this code:
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());
}
}
}
Note: change database, user and passwrod with your configuration
Upvotes: 2
Reputation: 62732
It is best to install your PostgreSQL driver into tomcat\lib folder. Just copy the driver jar to PATH_TO_TOMCAT\lib
It is not a good idea to add things to the system CLASSPATH because you can end in class loader hell. Here is an example of how you end up in jar / classpath hell.
See http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html
Upvotes: 7
Reputation: 32687
In your IDE (Idea, Eclipse, etc) you need to add that path as a library.
Alternatively, you can compile and execute from the command-line, if you define a CLASSPATH variable which includes that.
export CLASSPATH=/usr/local/pgsql/share/java/postgresql.jar
javac -classpath $CLASSPATH MyDBApp.java
java -cp $CLASSPATH MyDBApp
Upvotes: 1
Reputation: 15844
That driver has to be on your classpath. You can use this command
java -cp /usr/local/pgsql/share/java/postgresql.jar my.app.MainClass
or you can copy the library into your project structure.
Then you can create connections as the tutorials say...
Upvotes: 3