Dúvida simples (para vcs :D ) sobre JDBC

4 respostas
A

Olá pessoal, faz + ou ? 2 horas desde que conheci o JDBC. Já aprendi algumas coisas mas ainda não consegui achar uma maneira QUE FUNCIONE para poder ler as tabelas no meu PostgreSQL.

Tenho no postgre a tabela ?clientes? (sem aspas) com os campos:
codigo, nome, sobrenome, endereco, cidade

O código que uso para conectar é:

import java.sql.*;
import javax.swing.*;

public class conectar {
    

public void conecta(){
        try{
            
            String porta = "5432";
            String nomeDoBanco = "postgres";
            String ip = "localhost";
            String usuario = "postgres";
            String senha = "123";
            
            String fonte = "jdbc:postgresql://" + ip + ":" + porta + "/" + nomeDoBanco;
            Class.forName("org.postgresql.Driver");
            Connection con = DriverManager.getConnection(fonte, usuario, senha);
        }
        catch(ClassNotFoundException e){
            JOptionPane.showMessageDialog(null, "Erro em ClassNotFoundException: " + e.getMessage());
        }
        catch(SQLException e){
            JOptionPane.showMessageDialog(null, "Erro no SQL: " + e.getMessage());
        }
        catch(NoClassDefFoundError e){
            JOptionPane.showMessageDialog(null, "Erro em NoClassDefFoundError: " + e.getMessage());
        }

}

public static void main (String[] args) {
    conectar a1 = new conectar();
    a1.conecta();
}


}

Eu gostaria de saber como eu faço para salvar os valores do 1º registro (cujo codigo é 0001) da minha tabela clientes em Strings. Será que alguém pode me ajudar?

Se alguém tiver um link de tutorial que FUNCIONE, poderia postar aqui por favor?

Obrigado

4 Respostas

doug

Olá
Aproveitando seu código, estarie melhorando somente a parte do main para inserir registro no banco de dados… isso serve para qualquer banco de dados.

public static void main (String[] args) {  
     conectar a1 = new conectar();  
     Connection con = a1.conecta();  

    // cria um preparedStatement
   String sql = "insert into clientes(codigo,nome,sobrenome,endereco,cidade) values (?,?,?,?,?)";
   
    PreparedStatement stmt = con.prepareStatement(sql);
    // preenche os valores
    stmt.setString(1, "001");
    stmt.setString(2, "Thiago");
    stmt.setString(3, "Filadelfo");
    stmt.setString(4, "R. X");
    stmt.setString(5, "São Paulo");

    // executa
   stmt.execute();
   stmt.close();
   
    System.out.println("Gravado!");
    con.close();
 }

Se você quiser aprofundar mais neste aspecto, existe uma apostila da Caelum, link

Espero ter ajudado
Flwsss

A

Olá , queria primeiramente agradecer pela ajuda mas não ta funcionando aqui. Tem um erro na parte:

Connection con = a1.conecta();

Não sei pq, o erro é:

Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - incompatible types
found   : void
required: java.sql.Connection
        at conectar.main(conectar.java:36)
Java Result: 1

Queria dizer que eu tenho importado o Java.sql.*;

Alguém sabe o problema?

doug

Olá
É que não tinha visto, mas sua classe conectar, o metodo conectar deve retornar um Connection, como segue:

public Connection conecta(){....   }

Espero ter ajudado
FLwsss

A

thiago.filadelfo:
Olá
É que não tinha visto, mas sua classe conectar, o metodo conectar deve retornar um Connection, como segue:

public Connection conecta(){....   }

Espero ter ajudado
FLwsss

Obrigado, agora não tenho como testar pois não estou em casa, mas quando chegar eu testo e dou um retorno aqui.

Criado 17 de abril de 2009
Ultima resposta 21 de abr. de 2009
Respostas 4
Participantes 2