MySQL, jTable (Select)

Pessoal, estou com usando Mysql para preencher minha tabela…
dentro de um botão eu estou passando o Inome,Iendereco,Itelefone,Icelular,Iemail, jTable1
Para a seguinte classe:

[code]public void conectaBanco(String Inome, String Iendereco, String Itelefone, String Icelular, String Iemail, javax.swing.JTable jTable1) {

    Connection connection = null;


    try {
        // Carregando o JDBC Driver
        String driverName = "org.gjt.mm.mysql.Driver"; // MySQL MM JDBC driver

        Class.forName(driverName);

        // Criando a conexão com o Banco de Dados
        String serverName = "localhost";
        String mydatabase = "restaurante";//String mydatabase = "com.mysql.jdbc.Driver";
        String url = "jdbc:mysql://" + serverName + ":3306/" + mydatabase; // a JDBC url
        String username = "root";
        String password = "admin";
        connection = DriverManager.getConnection(url, username, password);
        JOptionPane.showMessageDialog(null, "Legal conectou");

        //Criando um objeto Statement para enviar requisições SQL para o Banco de Dados
        Statement stmt = connection.createStatement();

        String sql = "INSERT INTO cliente (Nome, endereço, telefone, celular, email) VALUES('" + Inome + "','" + Iendereco + "','" + Itelefone + "','" + Icelular + "','" + Iemail + "')";
        stmt.executeUpdate(sql);

        String sql2 = "Select * from clientes";
        stmt.executeUpdate(sql2);
        
        /*
                É AKI QUE EU PRECISO CONECTAR A TABELA COM O sql2
         *      Como faço isso?           
        
       */

    }


    catch (ClassNotFoundException e) {
        //Driver não encontrado
        System.out.println("O driver expecificado não foi encontrado.");
    }

    catch (SQLException e) {
        //Não está conseguindo se conectar ao banco
        System.out.println("Não foi possível conectar ao Banco de Dados");
    }




    
}[/code]

Agora eu quero que minha tabela selecione todos os campos…
Colokei isso, agora eu preciso “conectar” a tabela com o isso:

[code] String sql2 = “Select * from clientes”;
stmt.executeUpdate(sql2);

               // É AKI QUE EU PRECISO CONECTAR A TABELA COM O sql2... Como faço isso?
        
        
       [/code]

Veja o comando executeQuery, no lugar do ExecuteUpdate. Ele te retornará um ResultSet com os dados.

E também não entendi onde entrou JTable na sua dúvida. O JTable é um componente gráfico do Swing que mostra os dados no formato de uma tabela, de maneira visual.

pra colocar dados em uma JTable vc precisa armazenar os dados em objeto ResultSet…

em vez de fazer isso:

String sql2 = "Select * from clientes";  
stmt.executeUpdate(sql2);

tente isso:

String sql2 = "Select * from clientes";  
ResultSet rs = stmt.executeQuery(sql2);

depois você deve iterar pelo objeto rs para armazenar os dados…
por exemplo:

while(rs.next()){
           String[] dados = new String[3];
           dados[0] = rs.getString("ID"); //onde "ID" é o nome da coluna no seu banco de dados
           dados[1] = rs.getString("nome");
           dados[2] = rs.getString("email");
           modelo.addRow(dados); //adiciona uma nova linha em sua JTable;
}

a variável modelo é um objeto do tipo DefaultTableModel que define como vc qr q apareça sua tabela (sempre declaro bem no começo :lol: )

[code]
//os atributos setados dentro do novo array são como será mostrada a “cabeça de cada coluna”
DefaultTableModel modelo = new DefaultTableModel(null,new String[]{
“ID”,“Nome do Cliente”,“E-mail do cliente”});

JTable tabela = new JTable(modelo);[/code]

espero ter ajudado!!!

Argh… lá vai mais um ensinando o cara a usar o péssimo DefaultTableModel…

só quis tentar ajudar o cara do jeito que eu sei…

Ok, desculpe a grosseria. Na verdade, eu já escrevi uns 50 tópicos aqui sobre o porque não usar o DefaultTableModel. Repetindo:

  1. Ele é duplica todos os dados, ou seja, consome o dobro de memória;
  2. Ele torna a sua classe confusa, cheia de casts;
  3. Ele trabalha com o Vector (totalmente sincronizado, e obsoleto desde o Java 1.2), ou com arrays de arrays;
  4. Ele não segue corretamente o modelo MVC;
  5. O código final gerado por ele é mais complexo.

Melhor mesmo é implementar o seu próprio TableModel. Assim você respeita sua estrutura de classes, separa melhor os conceitos da sua aplicação e respeita boas práticas de programação. Supreendentemente, isso ainda é mais fácil que usar o modelo Default. Nesse tópico, tem um exemplo comentado:
http://www.guj.com.br/posts/list/132698.java#714736