Problemas conexão - Postgresql e Eclipse

12 respostas
jsnpereira

Olá, pessoal!

Estou meio estranho, já tentei várias vezes as configuração, mas deu erro.

java.sql.SQLException: No suitable driver found for postgres

at java.sql.DriverManager.getConnection(Unknown Source)

at java.sql.DriverManager.getConnection(Unknown Source)

at Conexao.getConexao(Conexao.java:27)

at Query.inserirQuery(Query.java:14)

at Dados.inserirEstados(Dados.java:8)

at Arquivos.gerarEstados(Arquivos.java:28)

at Executa.run(Executa.java:12)

at Executa.main(Executa.java:8)

Exception in thread main java.lang.NullPointerException

at Query.inserirQuery(Query.java:19)

at Dados.inserirEstados(Dados.java:8)

at Arquivos.gerarEstados(Arquivos.java:28)

at Executa.run(Executa.java:12)

at Executa.main(Executa.java:8)

baixei o drive postgresql-9.2-1002.jdbc4 no site e configurei no Properties > Java Build Path >Add External JARs e selecionei mesmo drive que disse.

Programei a classe Conexão veja em baixo

public class Conexao {
	
	public void iniciaDB(){
		try {
			Class.forName("org.postgresql.Driver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public Connection getConexao(){
		String user = "postgres";
		String password = "080882";
		String init = "jdbc:postgresql://localhost:5432/A_BD_RH";
		String init2 = "jdbc:postgres://localhost:5432/A_BD_RH";
		
		try {
			System.out.println("Gerar conexão");
			return DriverManager.getConnection(user, password, init2);
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	
		return null;
	}
	
	
	public void finalizaConexao(Connection conn){
		
		try {
			System.out.println("Desconectado");
			conn.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

Espero que vocês me ajuda… obrigado!

12 Respostas

R

Teu problema deve ser o sono:

public Connection getConexao(){  
        String user = "postgres";  
        String password = "080882";  
        String init = "jdbc:postgresql://localhost:5432/A_BD_RH";  
        String init2 = "jdbc:postgres://localhost:5432/A_BD_RH";  // A string esta errada, ta postgreS, o certo e como esta em cima: postgreSQL.
          
        try {


............// resto do codigo
jsnpereira
rof20004:
Teu problema deve ser o sono:
public Connection getConexao(){  
        String user = "postgres";  
        String password = "080882";  
        String init = "jdbc:postgresql://localhost:5432/A_BD_RH";  
        String init2 = "jdbc:postgres://localhost:5432/A_BD_RH";  // A string esta errada, ta postgreS, o certo e como esta em cima: postgreSQL.
          
        try {


............// resto do codigo

Olá!

Já tentei em cima como você disse, mas mesma coisa dá erro.

R

Entao veja se realmente ele esta no build path do projeto.

Clique botao direito na pasta principal do projeto.

Properties -> Java Build Path -> Libraries.

Veja se aparece esse driver que voce disse que adicionou la.

Outra coisa, voce ta fazendo um projeto WEB ? se sim, seu driver nao tem que ficar no build path, e sim na pasta WebContent -> WEB-INF -> lib

No caso de web nem precisa adicionar no build path, basta por na pasta lib.

R

E confirmando, nao é postgres, é postgresql.

jsnpereira

rof20004:
Entao veja se realmente ele esta no build path do projeto.

Clique botao direito na pasta principal do projeto.

Properties -> Java Build Path -> Libraries.

Veja se aparece esse driver que voce disse que adicionou la.

Outra coisa, voce ta fazendo um projeto WEB ? se sim, seu driver nao tem que ficar no build path, e sim na pasta WebContent -> WEB-INF -> lib

No caso de web nem precisa adicionar no build path, basta por na pasta lib.

Não é projeto Web.

Já conferi, ainda o drive está no BUILD PATH, veja a imagem.

Drive no diretório da pasta no projeto

jsnpereira

Já tentei a rodar, mas deu erro… veja

R

Entao amigo, acredite em mim, o certo é postgresql, ok que voce ja tentou rodar e deu, mas o erro nao é por causa desse nome se voce colocou o certo.

Tente assim

DriverManager.getConnection("jdbc:postgresql://localhost:5432/A_BD_RH", user, password);
R

Desculpa, eu nao coloquei o nome do banco, mas ja alterei ai em cima.

jsnpereira

rof20004:
Entao amigo, acredite em mim, o certo é postgresql, ok que voce ja tentou rodar e deu, mas o erro nao é por causa desse nome se voce colocou o certo.

Tente assim

DriverManager.getConnection("jdbc:postgresql://localhost:5432/A_BD_RH", user, password);

Agora funcionou… simplesmente errou colocar no paramento… tá funcionando mesmo… obrigado!!

R

Entendeu o problema ja ? o metodo getConnection recebe NESSA ordem (url, usuario, senha). Voce fez o inverso.

Agora coloque no titulo do topico como resolvido pra ajudar a galera ae =D

R

Ae, vo da o nome disso que tu fez de Ovewrite-Death

Tu fez um Ovewrite-Death no metodo, kkkkkkkkkkkkkkkkkk…

=D

fabricioluiz

Estou com mesmo problema. Até ontem tudo funcionava. Mas hoje… =(
começou apos eu remover o java do computador e instalar nova versao

Criado 1 de fevereiro de 2013
Ultima resposta 5 de fev. de 2015
Respostas 12
Participantes 3