Como me conectar a uma base de dados PostgeSQL?

7 respostas
L

Boas,

Estou iniciando em Java. Queria fazer um teste retornando resultados de uma base de dados, no entanto não estou a conseguir. Estou a utilizar o seguinte código:

import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.SQLException;

public class Example1 {
  public static void main(String[] argv) {
  System.out.println("Checking if Driver is registered with DriverManager.");
  
  try {
    Class.forName("org.postgresql.Driver");
  } catch (ClassNotFoundException cnfe) {
    System.out.println("Couldn't find the driver!");
    System.out.println("Let's print a stack trace, and exit.");
    cnfe.printStackTrace();
    System.exit(1);
  }
  
  System.out.println("Registered the driver ok, so let's make a connection.");
  
  Connection c = null;
  
  try {
    // The second and third arguments are the username and password,
    // respectively. They should be whatever is necessary to connect
    // to the database.
    c = DriverManager.getConnection("jdbc:postgresql://localhost/geonames_test",
                                    "postgres", "PW.12345678;");
  } catch (SQLException se) {
    System.out.println("Couldn't connect: print out a stack trace and exit.");
    se.printStackTrace();
    System.exit(1);
  }
  
  if (c != null)
    System.out.println("Hooray! We connected to the database!");
  else
    System.out.println("We should never get here.");
  }
}

O código é compilado correctamente, no entanto quando executado, dá o seguinte:

Qual poderá ser o problema?

Desde já obrigado.

7 Respostas

lelodois

Bom dia,

java.lang.ClassNotFoundException

Não conseguiu achar o jar do Postgree no seu classpath.

blackfalcon

Se voce nao conseguir configurar o classpath, copie o jar para dentro da pasta jre/ext/lib, assim voce podera testar pelo menos para ver se nao ira dar erro.

Porem isso nao é aconselhavel para aplicações porque se houver atualizações na versao da jre, provavelmente o nome da pasta vai mudar por exemplo de jre6 para jre7.

Entao é aconselhavel fazer isso apenas para teste caso voce configure o classpath com o jar e nao funcione, porque assim quer dizer que voce esta configurando o classpath errado, entende…

Abraços

lelodois

blackfalcon:
Se voce nao conseguir configurar o classpath, copie o jar para dentro da pasta jre/ext/lib, assim voce podera testar pelo menos para ver se nao ira dar erro.

Porem isso nao é aconselhavel para aplicações porque se houver atualizações na versao da jre, provavelmente o nome da pasta vai mudar por exemplo de jre6 para jre7.

Entao é aconselhavel fazer isso apenas para teste caso voce configure o classpath com o jar e nao funcione, porque assim quer dizer que voce esta configurando o classpath errado, entende…

Abraços

Sou contra colocar jar nesse diretório, pois acredito que sua aplicação deve saber quais bibliotecas são necessárias para o projeto. Em carater de teste também, deve ser nítido e expressivo que vc precisa de um jar jdbc do postgree para conectar no banco!

abs

L

Desde já obrigado pelas respostas.

Já agora expliquem-me uma coisa. O que faz o “import”? Faz a importação dessas mesmas bibliotecas pela internet?

É que eu neste PC apenas tenho uma proxy para aceder à web.

Desde já obrigado.

L

Olá,

Já pesquisei e já encontrei onde fazer o download da jdbc para o PostgreSQL, http://jdbc.postgresql.org/download.html

Agora como é que eu indico ao Java onde é q ela está localizada?

Desde já obrigado.

lelodois

lopes_andre:
Olá,

Já pesquisei e já encontrei onde fazer o download da jdbc para o PostgreSQL, http://jdbc.postgresql.org/download.html

Agora como é que eu indico ao Java onde é q ela está localizada?

Desde já obrigado.

Para entender:

http://www.guj.com.br/article.show.logic?id=108

Caso use o eclipse:

http://www.vogella.de/articles/Eclipse/article.html#classpath_jar

abs.

THIAGOANALISTA

não se esquece de dar pemissão a porta que voçe irá usar, a versão 8.3 tem problemas para configurá-la.

port 5432.

Criado 2 de agosto de 2010
Ultima resposta 2 de ago. de 2010
Respostas 7
Participantes 4