Erro na Fonte de Dados - Conexão com Banco Postgres (Iniciante) [Resolvido]

14 respostas
R

Boa tarde pessoal.
Estou iniciando em Java e através de alguns amigos aquí, conseguí fazer uma conexão com o banco de dados Postgres, mas está dando um erro
que não estou conseguindo achar o problema, talvez pela minha inexperiência. Já verifiquei em inúmeros posts, mas não estou enxergando o problema.

Já fui no banco de dados e criei um outro usuário e mudei no java, e nada. povoei a base de dados, tudo certinho, mas no Java dá o erro
na (SQLException Fonte). Erro: “Deu erro na conexao com a fonte de dados”.

Abaixo segue o código da minha conexão, pra que me ajudem.
Desde ja agradeço a todos.

package conectabanco;
import java.sql.Statement;  
import java.sql.Connection;  
import java.sql.DriverManager;  
import java.sql.ResultSet;  
import java.sql.SQLException;  
import javax.swing.*;
  
class conexao {
    final private String driver = "org.postgresql.Driver";
    final private String url = "jdbc:postgresql://localhost/Estoque";
    final private String usuario = "postgres";
    final private String senha = "postgres";
    private static Connection conexao;
    public Statement statement;
    public ResultSet resultset;
    public void conecta()
    {
        boolean result = true;
        try
        {
            Class.forName(driver);
            conexao = DriverManager.getConnection(url, usuario, senha);
          //  JOptionPane.showMessageDialog(null, "Conectou");

        }
        catch(ClassNotFoundException Driver)
        {
            JOptionPane.showMessageDialog(null, "Driver não encontrado");
            result = false;
        }
        catch(SQLException Fonte)
        {
            JOptionPane.showMessageDialog(null, "Deu erro na conexao com a fonte de dados");
            result = false;
        }

       // return result;
    }
    public void desconecta()
    {
        boolean result = true;
        try
        {
            conexao.close();
            JOptionPane.showMessageDialog(null, "Banco fechado");
        }
        catch(SQLException Fecha)
        {
            JOptionPane.showMessageDialog(null, "Não foi possivel fechar o banco de dado");
            result = false;
        }

    }
    public ResultSet executeSQL(String sql)
    {
        try
        {
            System.out.println(sql);
            statement = conexao.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);//seria como se fosse uma abertuda das portas para executar o sql
            resultset = statement.executeQuery(sql);
        }
        catch(SQLException sqlex)
        {
            JOptionPane.showMessageDialog(null, "Não foi possível executar o comando sql,"+sqlex+"," +
                    "o sql passado foi "+sql);
        }
        return  resultset;
    }
}

14 Respostas

douglasrauber

tioroni, também não tenho grande experiência, mas você pode ter um maior detalhamento do erro que acontece e fornecer mais informações pra galera trocando o seguinte:

catch(SQLException Fonte)  
         {  
             JOptionPane.showMessageDialog(null, "Deu erro na conexao com a fonte de dados");  
             result = false;  
         }

por

catch(SQLException Fonte)  
         {  
             JOptionPane.showMessageDialog(null, Fonte.getMessage());
             result = false;  
         }

Com essa informação você terá mais detalhes do que está acontecendo…

Sucesso amigo…

nel

Concordo em termos, deixa a mensagem que você mesmo deixou e concatene com o erro, assim:

JOptionPane.showMessageDialog(null, "Deu erro na conexao com a fonte de dados "+Fonte.getMessage());

Pode ser erro do seru driver, conexão inválida e etc…Rode novamente seu programe e nos mostre o stactrace do erro ok?
Abraços

R

Olá amigos, fiz o que me falaram, realmente ficou melhor pra ver os erros, aprendi mais uma.
O que não entendo é que já criei vários usuários no Postgres e dei permissão de superusuário, inclusive coloquei como dono da base de dados,
mas mesmo assim ele continua dando o erro abaixo, já alterei vários usuários no java.

FATAL: autenticacao do tipo passoword falhou para usuario “roni”

Muito agradecido a todos por estar me ajudando.
Abraços.

nel

Bem, neste caso parece um problema de configuração do banco de dados. Não esqueça sempre de alterar a string usuario no Java. Ela deve ser exatamente a mesma que efetua o login, incluindo maiusculas e minusculas ok?

Quando seu tópico for resolvido, poste [Resolvido] ao lado dele.
Abração!

douglasrauber

Veja que ele não está pegando seu usuário postgres e senha postgres

tente colocar no lugar de

conexao = DriverManager.getConnection(url, usuario, senha);
conexao = DriverManager.getConnection(url, new String("postgres"), new String("postgres"));

isso vai ser apenas para nós testarmos se está havendo algum erro na sua chamada ou se há algum erro na configuração do postgres…

DRauber :lol:

R

douglasrauber:
Veja que ele não está pegando seu usuário postgres e senha postgres

tente colocar no lugar de

conexao = DriverManager.getConnection(url, usuario, senha);
conexao = DriverManager.getConnection(url, new String("postgres"), new String("postgres"));

isso vai ser apenas para nós testarmos se está havendo algum erro na sua chamada ou se há algum erro na configuração do postgres…

DRauber :lol:

Amigos, agradeço grandemente a ajuda de todos vc’s.
Fiz também o que vc me passou e continuou o mesmo erro.
Então criei outro usuário e marquei somente superusuário, não marquei as outras opções e com este usuário conectou normalmente.
Eu sinceramente não sei o que ocorreu, fiquei boiando nesta. Conheço muito pouco de Postgres, estou mais acostumando com o SQL Server.
Agradeço muito a ajuda de vc’s, irei precisar muito da ajuda de todos, pois sou iniciante, que Deus ajude grandemente todos vc’s.

douglasrauber

tioroni

Isso é uma configuração de opções do postgres… agora nao lembro exatamente qual dos arquivos é… mas se nao me falha a memória é pg_hba.conf ou pg_ident.conf

Att…

DRauber

R

douglasrauber:
tioroni

Isso é uma configuração de opções do postgres… agora nao lembro exatamente qual dos arquivos é… mas se nao me falha a memória é pg_hba.conf ou pg_ident.conf

Att…

DRauber


Como funciona essas configurações no Postgres?
Onde fica esses arquivos?
Abraços

nel

Amigo, porque não usa MySQL que é bem simples e fácil de configurar?
Mas se insiste em Postgre eu diria para fazer uma pesquisa pela web ok?

Aqui tem dois links que podem ser úteis:

http://imasters.uol.com.br/artigo/302/php/instalando_o_postgresql_no_windows/

http://www.postgresql.org/docs/faqs.FAQ_windows_br.html

Abraços!

potter

Vc Ja Adicionou a biblioteca ?

ctdaa

O postgresql tá instalado no Windows? Abra o pgAdmin III, vá em Arquivo -> Abrir pg_hba.conf. Vai abrir uma tela de seleção para voce escolher um arquivo. O arquivo pg_hba.conf geralmente fica na pasta “data” dentro do diretório de instalação do postgresql. Neste arquivo você vai encontrar a configuração de autenticação dos usuários. Seu problema deve estar aí.

R

nel:
Amigo, porque não usa MySQL que é bem simples e fácil de configurar?
Mas se insiste em Postgre eu diria para fazer uma pesquisa pela web ok?

Aqui tem dois links que podem ser úteis:

http://imasters.uol.com.br/artigo/302/php/instalando_o_postgresql_no_windows/

http://www.postgresql.org/docs/faqs.FAQ_windows_br.html

Abraços!


Obrigado pela ajuda NEL.
Quanto aos bancos, realmente ainda estou analisando, mas como estou pensando puramente em aplicação Desktop, gostaria muito de testar primeiro
o Postgres. Mas agradeço se vc’s me derem mais dicas quanto a banco de dados.
Muito obrigado.
Abraços.

R

Olá Potter.
sim, já já tinha adicionado a biblioteca, agora está funcionando legal. Meu problema é o que Nel falou, não conheço muito do Postgres, já estou estudando
mais pra saber as sua configurações.
Obrigado pela ajuda.
Abraços.

R

Olá ctdaa.
Abrí o arquivo conforme me falou, mas ainda não entendo nada, vou dar mais uma pesquisada, realmente não sabia que tinha essas opções de configurações.
Vou correr atrás pra aprendê-las.
Fico muito agradecido pela ajuda.
Abraços.

Criado 27 de novembro de 2009
Ultima resposta 28 de nov. de 2009
Respostas 14
Participantes 5