Exemplo de JODBC -> JTABLE

2 respostas
Z

Olá
gostaria de um exemplo de colocar o resultado de uma pesquisa JODBC para
um JTable.

Obrigado

2 Respostas

C

recupere em um ArrayList, ai mande para o model da sua table.

T

Olá,
Peguei esse exemplo no livro de Java da Editora Érica. Veja se serve para vc…! :wink:

package capitulotreze;
import java.sql.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

public class Exemplo1304 extends JFrame
{
   Connection conexao;
   JTable tab;
   
   public static void main(String args[])
  {
   JFrame Janela = new Exemplo1304();
   Janela.show();
   WindowListener x = new WindowAdapter()
    {
    public void windowClosing(WindowEvent e)
     {
      System.exit(0);
     }
    };
   Janela.addWindowListener(x);
  }
  
  public Exemplo1304() 
   {   
   setTitle( "Tabela de Filmes" );
   setSize(600,300);
   String url = "jdbc:odbc:MeuBanco";  
   try 
     {
     Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
     conexao = DriverManager.getConnection(url, "", "" );
     } 
   catch (ClassNotFoundException cne) 
     {
      System.out.println("Erro ao carregar o driver JDBC/ODBC");
     }
   catch (SQLException sqlne ) 
     {
     System.out.println("Problemas na Conexão");
     }
    buscaTabela();
   }

   private void buscaTabela()
   {
      Statement st;
      ResultSet res;
      try 
       {
	   Vector cabecalho = new Vector();
       Vector linhas = new Vector();
       st = conexao.createStatement();
       res = st.executeQuery("SELECT * FROM Filmes");
	   res.next();  
       // busca os cabeçalhos
       ResultSetMetaData rsmd = res.getMetaData();
       for ( int i = 1; i <= rsmd.getColumnCount(); ++i ) 
          cabecalho.addElement( rsmd.getColumnName( i ) );
       // busca dados das linhas
       do 
        {
        linhas.addElement( proximaLinha( res, rsmd ) ); 
        } 
       while ( res.next() );       
 
       // Mostra a tabela com cabeçalhos e registros
       tab = new JTable( linhas, cabecalho );
       JScrollPane scroller = new JScrollPane( tab );
       getContentPane().add(scroller, BorderLayout.CENTER);
       validate();
       st.close();
       }
      catch (SQLException sqlex) 
        { }
   } 

   private Vector proximaLinha(ResultSet rs, ResultSetMetaData rsmd )
   {
    Vector LinhaAtual = new Vector();
    try
    {
    for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
     switch( rsmd.getColumnType(i)) 
     {
     case Types.VARCHAR:
      LinhaAtual.addElement(rs.getString(i));break;
     case Types.TIMESTAMP:
      LinhaAtual.addElement(rs.getDate(i));break;
     }
    }
    catch(SQLException e) {}
    return LinhaAtual;   
   }
}
Criado 18 de agosto de 2006
Ultima resposta 21 de ago. de 2006
Respostas 2
Participantes 3