# JDBC mit Postgres DB connecten



## Strim (27. Nov 2014)

Hey,

ich versuche gerade JDBC mit meiner Postgres DB zu connecten, die auch auf meinem Rechner läuft.


```
package postgres;
import java.sql.*;
import java.util.Properties;



public class SQLConnector {
	String url = "jdbc:postgresql://localhost:5432/postgres";
	Properties props = new Properties();
	Connection con;

	public SQLConnector() throws SQLException {
		props.setProperty("user", "postgres");
		props.setProperty("password", "admin");

		this.con = DriverManager.getConnection(url, props);
	}
	
	public boolean isOpen() throws SQLException {
		
		return con.isValid(5);
		
	}

	public static void main(String[] args)throws SQLException {
		SQLConnector sqldb = new SQLConnector();
		if (sqldb.isOpen()) {
			System.out.println("Connection successfully established.");
		}
	}
}
```

Ich bekomme allerdings folgende Exception:

```
Exception in thread "main" java.lang.AbstractMethodError: org.postgresql.jdbc3g.Jdbc3gConnection.isValid(I)Z
	at postgres.SQLConnector.isOpen(SQLConnector.java:21)
	at postgres.SQLConnector.main(SQLConnector.java:27)
```

Treiber liegt in Referenced Libraries des Projekts.

Woran kann das liegen? Ich würde mich über Hilfe freuen.

Viele Grüße,
Tim


----------



## stg (27. Nov 2014)

Offenbar benutzt du eine jdbc4-Methode auf einem jdbc3-Treiber.

Probiers mal mit nem aktuellen Treiber...

PostgreSQL JDBC Download


----------



## Strim (27. Nov 2014)

Daaanke!! Top.

Mal ne allgmeinere Frage: Versteh ich das richtig, die JDBC API besteht nur aus Interfaces (sprich nur unimplementierte Methoden) aus dem Grund, weil die API für die Implementierung auf den Treiber den man einbindet, zugreift???


----------



## stg (27. Nov 2014)

Ja, in der JDBC API sind nur die Schnittstellen definiert. Die Implementierung liefert dann der Datenbank Vendor. Das ist soweit der Grundgedanke..


----------

