/ / JDBC- postgres, conexión rechazada - postgresql, jdbc

JDBC- postgres, conexión rechazada - postgresql, jdbc

Esta es mi primera vez usando java para accederbases de datos, por lo que probablemente tengo un error simple aquí, pero cuando voy a recuperar mi conexión de una base de datos remota a la que tengo acceso, se me niega la conexión.

Aquí está el código en cuestión:

String url = "jdbc:postgresql:url.isformatted.like.this/database";

try {
conn = DriverManager.getConnection(url, "username", "password");
} catch (SQLException e) {
e.printStackTrace();
System.exit(1);
}

(usuario / contraseña y url de base de datos eliminados por motivos de privacidad)

El problema podría no ser las credenciales o la URLen sí, ya que lo uso para iniciar sesión manualmente desde el mismo cuadro con éxito usando psql. Estoy pensando que es probable que sea el formato de la URL, pero no pude encontrar ningún ejemplo de psql que se esté usando en una dirección remota (todos eran cosas del host local)

Respuestas

12 para la respuesta № 1

De acuerdo a http://www.petefreitag.com/articles/jdbc_urls/ las URL válidas son

jdbc: postgresql: base de datos jdbc: postgresql:// host / base de datos jdbc: postgresql: // host: puerto / base de datos jdbc: postgresql: // host: puerto / base de datos? user = userName & password = pass jdbc: postgresql: // host: port / database? charSet = LATIN1 & compatible = 7.2

¿Tienes el // delante del anfitrión?


1 para la respuesta № 2

Estoy de acuerdo con @Jonathan acerca de tener la biblioteca JARBC de PostgreSQL en tu ruta de clase: aquí es lo que usé:

private static final String TABLE_NAME = "tablenamegoeshere";
private static final String DRIVER = "org.postgresql.Driver";
private static final String URL = "jdbc:postgresql://url.for.database/DatabaseName";
private static final String USERNAME = "yourusername";
private static final String PASSWORD = "yourpassword";


private static Connection getConnection() throws Exception {
Class.forName(DRIVER);
Connection conn = DriverManager.getConnection(URL, USERNAME, PASSWORD);
return conn;
}

0 para la respuesta № 3

Acabo de buscar y ver mi código que se conecta a una base de datos PostgreSQL, y se ve así:

DriverManager.getConnection(String.format("jdbc:postgresql://%s/%s", server, dbName), userName, password);

Además, asegúrese de "volver a cargar el controlador de base de datos PostgreSQL antes de intentar conectarse:

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

y que la biblioteca JDBC de PostgreSQL está en su classpath.