JDBC + PostgreSQL

Caros,

Estou tendo muita dificuldade em conectar o JAVA com o postgresql. Eu pesquisei, e encontrei um código-fonte que faz essa conexão com o banco de dados, mas to um pouco no escuro, sobre onde eu localizo o meu Database, meu usário e minha senha.

Abaixo segue o exemplo em java para a conexão com o banco:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import javax.swing.JOptionPane;

public class Main {

    public static void main(String[] args) {
        String driver = "org.postgresql.Driver";
        String user = "postgres";
        String senha = "minhasenha";
        String url = "jdbc:postgresql://localhost:5432/Databases";

        try {
            Class.forName(driver);
            Connection con = null;

            con = (Connection) DriverManager.getConnection(url, user, senha);

            JOptionPane.showMessageDialog(null, "Conexão realizada com Sucesso!");

        } catch (ClassNotFoundException ex) {
            System.err.print(ex.getMessage());
        } catch (SQLException e) {
            System.err.print(e.getMessage());
        }
    }
}

OBS: No momento da execução, ele não me exibe a mensagem:
[color=darkred]FATAL: database “Databases” does not existCONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)
[/color]

Inclusive, eu baxei em um site o jdbc.jar do postgresql para a conexão, fui em propriedades e adicionei a biblioteca também.

Obrigado
Att.
Antônio

veja isto, talvez te ajude.

http://imasters.com.br/artigo/1020/postgresql/acesso_a_banco_de_dados_usando_jdbc

t+

Cara,

Show de bola, esse tópico me ajudou bastante.

Mas, agora eu não to conseguindo utilizar o método .executeQuery(“consulta”);


            Class.forName(driver);
            Connection con = null;

            database = JOptionPane.showInputDialog("Informe o Bando de Dados: ", "DataBank");
            con = (Connection) DriverManager.getConnection(url + database, usuario, senha);
            Statement sq_stmt = (Statement) con.createStatement();
            query = "SELECT * FROM ALUNO";
            ResultSet rs = sq_stmt.executeQuery(query);

Alguém sabe se isso significa que meu arquivo .jar do jdbc (PostrgeSQL), não está importado, pois eu cliquei com o botão direito no projeto e importei na biblioteca, só adicionei o arquivo.

Alguém sabe me ajudar?

Qual o erro?

naquela sua primeira resolução ali estava faltando a biblioteca do postgree.

bem, eh o seguinte…da uma lida na apostila FJ21 da Caelum na parte de DAO, não é recomendado usar Statement, use PreparedStatement…Leia a apostila na parte q falei q vai entender.
E ja q vai ler a FJ21 leia tbm a FJ11.

veja o codigo.

//aqui eu uso mysql mas eh a mesma coisa para outros bancos.
public class ConexaoBD{
public static Connection getConnection() throws SQLException{
        try {
             Class.forName("com.mysql.jdbc.Driver");                             
             return DriverManager.getConnection("jdbc:mysql://xxx.xxx.xxx.xxx/mybd?user=eu&password=eu");                         
        } catch (ClassNotFoundException e) {
            JOptionPane.showMessageDialog(null, e.getMessage());            
            throw new SQLException();            
        }        
    } 
}

//aqui vc faz o bean
public class Clientes{
      private Long id;
      private String nome;
      private String sobreNome;
      //get e sets
}

//aqui vc faz o DAO, q vc vai saber o q eh lendo a apostila FJ21
public class ClientesDAO{
      private Connection con;
      ClientesDAO() throws SQLException{
            //construtor da classe assim sempre vc vai ter uma conexao
            this.con = ConexaoBD.getConnection();
      } 

public List<Clientes> retornaConsultaClientes() throws SQLException{
     List<Clientes> lista = new ArrayList<Clientes>();
     PreparedStatement stm = this.con.prepareStatement("SELECT * FROM clientes");
     ResultSet rs = stm.executeQuery();
     while(rs.next()){
           Clientes cli = new Clientes();
           cli.setId(rs.getLong("id"));
           cli.setNome(rs.getString("nome");
           cli.setSobrNome(rs.getString("sobrenome"));

           lista.add(cli);
     }
     rs.close();
     stm.close();
     return lista;
}
}

Novamente, leia a FJ21 na parte de DAO e tbm leia a FJ11 q vai te ajudar muiiito.

t+ e boa sorte.

Cara,

Vou verificar hoje. Mas algo que me deixou curioso e acredito ser o principal motivo de eu não conseguir.

O usuário daniferreira disse: "naquela sua primeira resolução ali estava faltando a biblioteca do postgree. ", ou seja, eu tenho que acrescentar a biblioteca. Ex:
import (…)

Seria a falta da “chamada” dessa biblioteca? Se sim, qual é o nome do import?

Att.
Antônio

Caros,

Achei qual era o “Erro”. Na verdade o meu import estava errado. Ele estava:

import java.Bean.Statement

e na verdade eu mudei para:

import java.SQL.Statement

… e funcionou! :lol:

Obrigado a Todos!