Primeiro de tudo, você deve criar uma classe para representar seus dados. Por exemplo, digamos que sua classe represente funcionários.
[code]public class Funcionario {
private int codigo;
private String nome;
private double salario;
public Funcionario(int codigo, String nome, double salario) {
this.nome = nome;
this.codigo = codigo;
this.salario = salario;
}
public int getCodigo() { return codigo; }
public String getNome() { return nome; }
public double getSalario() { return salario; }
}[/code]
Note que é muito importante trabalhar com os tipos de dados corretos. Nome é um String, mas o código é inteiro e o salário é um double (a rigor, seria melhor representa-lo como BigDecimal, mas não usei a classe aqui para simplicidade do exemplo).
O importante é você entender que os dados só serão Strings em um único lugar: dentro dos seus objetos de view (TextFields, labels, etc).
- O segundo passo é você fazer com que sua classe que controla o banco de dados (DAO), carregue um List de objetos da sua classe. O List é muito parecido com o Vector, que o colega acima citou, mas não é sincronizado. O uso do Vector não é recomendado desde o Java 1.2, e essa classe só se mantém na API por questões de compatibilidade. O código fica assim:
[code]public List carregarFuncionarios() {
String query = “SELECT * FROM tabela”;
try {
try {
statement = connection.prepareStatement(query);
resultset = statement.executeQuery();
List<Funcionario> lista = new ArrayList<Funcionario>();
while(resultset.next()) {
Funcionario f = new Funcionario(
resultset.getInt("CODIGO");
nome = resultset.getString("NOME");
salario = resultset.getDouble("SALARIO");
);
lista.add(f);
} finally {
//É muito importante manter os recursos fechados
statement.close();
resultset.close();
}
} catch(Exception e) {
//Exibir erros é papel da view, então aqui só repassamos a exceção.
throw new RuntimeException(e);
}
return lista;
} [/code]
Finalmente, você exibe o resultado na tela. Para isso, você não usa o DefaultTableModel. Para usar o JTable, você precisa criar um FuncionarioTableModel. Os links da minha assinatura expilcam como fazer isso. O código ficará trivial como:
try {
FuncionarioDao dao = new FuncionarioDao();
List<Funcionario> lista = dao.carregarFuncionarios();
FuncionarioTableModel model = new FuncionarioTableModel(lista);
seuJTable.setModel(model);
} catch (Exception e) {
//Grave possíveis exceções num arquivo, com o stacktrace completo.
//Assim fica fácil corrigir o código se elas ocorrem.
logarException(e);
//Aqui sim, na interface gráfica, exibimos o erro.
//Podemos (e devemos) passar this no primeiro parâmetro pois estamos num JFrame ou JDialog.
JOptionPane.showMessageDialog(this, "Ocorreram erros! " + e.getMessage());
}
Sugiro que siga esses passos, para ter um programa organizado e bem-feito. Isso poupa muitas dores de cabeça e facilita enormemente a manutenção.