Então galera, seguinte: Voltei a estudar Java e estou pegando alguns códigos que o professor disponibilizava, a uns 3 anos atrás, para relembrar. Um dos códigos foi o de conexão de postgre com java. Mas eu não estou conseguindo conectar o banco. Queria uma ajuda de vocês.
Sempre que você trata uma exceção, antes de apresentar uma mensagem, coloque um ex.printStackTrace() para ver os detalhes do que houve.
No seu caso sua mensagem aparece dentro de um catch de ClassNotFoundException significa que a classe do driver do banco não está no classpath de sua aplicação.
Você precisa baixar o driver JDBC do postgresql e adicionar ao classpath de sua aplicação, ou adicionar a dependência, caso utilize Maven.
Cara, você me ajudou muito. Resolvi o erro. Pior que eu tinha certeza que ja tinha colocado a biblioteca JDBC. Será que voce poderia me ajudar com outra duvida?
public static void main(String[] args) {
try {
Class.forName("org.postgresql.Driver");
String url = "jdbc:postgresql://localhost:5432/postgres";
//String local = "localhost:5432";
String banco = "TeAmoProfessorMelo";
String usuario = "postgres";
String senha = "1234";
Connection conn = DriverManager.getConnection(url,usuario,senha);
// DriverManager.getConnection("jdbc:postgresql://" +
// local + "/" + banco +
// "7charSet=LATIN1", usuario,
// senha);
JOptionPane.showMessageDialog(null, "Conexão estabelecida");
Statement stmt = conn.createStatement();
JOptionPane.showMessageDialog(null, "Comando preparado");
String sql = "INSERT INTO aluno (matricula, nome, curso)";
sql+= "VALUES (1, 'Melo', 'ADS')";
stmt.execute(sql);
JOptionPane.showMessageDialog(null, "Aluno cadastrado");
conn.close();
JOptionPane.showMessageDialog(null, "Conexão encerrada");
} catch (ClassNotFoundException ex) {
JOptionPane.showMessageDialog(null,"problema com o driver do banco " + ex.getMessage());
} catch (SQLException ex){
JOptionPane.showMessageDialog(null,"problema com a execução de uma instrução " + ex.getMessage());
}
}
}
Quando coloco para executar o banco ele abre a caixa com a mensagem: "problema com a execução de uma instrução ERROR: relation “aluno” does not exist Posição: 13 "
Só que eu ja fiz o banco de dados e inseri a tabela aluno.
Pelo erro eu diria que essa tabela não existe no banco de dados.
Um ponto de atenção: atente-se aos espaçamentos entre os comandos, palavras reservadas e afins quando estiver escrevendo uma query SQL, pois na concatenação de Strings dependendo do caso isso pode causar alguns erros.
Nota que o nome da BD que estás a usar é postgres (definida apos a última barra na variável url) e não TeAmoProfessorMelo (definida na variável banco mas nunca usada). Qual o nome da BD onde criaste a tabela aluno?