Pessoal, eu estou tentando fazer uma consulta de um registro no banco de dados (MySQL) pra exibir na grid da jTable e não estou conseguindo. Esse programa é um cadastro de clientes. Eu já consegui conectar no banco e exibir os dados cadastrados no banco na jTable. Vou mostrar um print da tela do programa pra vocês terem uma base melhor.
Essa é a tela de visualização da grid com os dados do banco:
[img]http://img4.imageshack.us/img4/9/tela01k.jpg[/img]
E essa é a tela de cadastro/alteração:
[img]http://img182.imageshack.us/img182/8307/tela02.jpg[/img]
Quando eu gravo os dados no banco, ele já exibe os dados na grid normalmente logo quando eu executo o programa. Mas quando eu digito um nome no campo de busca e clico em "Consultar", ele não mostra nada na grid, a tela continua do jeito que estava com todos os dados do banco.
Vou mostrar o código pra vocês então. Esse código eu coloquei dentro de um Evento do botão Consultar pra quando eu digitasse a palavra e clicasse em Consultar, ele mostrar o resultado.. Esse é o mesmo código que eu coloquei em outra parte da classe pra exibir os dados na grid sem fazer a consulta. Eu só mudei o Select. Vejam o código:
try{
String nomeConsulta = jTextFieldNomeConsulta.getText();
st = conexao.conectar().createStatement();
sql = "select * from cliente where Nome like '"+ "%" + nomeConsulta + "%" + "'";
rs = st.executeQuery(sql);
rs.last();
linhas = rs.getRow();
dados = new String[linhas][4];
rs.first();
int lin = 0;
while(rs.next()){
dados [lin][0] = rs.getString(2);
dados [lin][1] = rs.getString(4);
dados [lin][2] = rs.getString(6);
dados [lin][3] = rs.getString(10);
System.out.println("teste");
lin++;
}
st.close();
}catch (Exception ex){
System.out.println("erro"+ex);
}
tm = new AbstractTableModel(){
public int getColumnCount(){
return 4;
}
public int getRowCount(){
return linhas;
}
public String getColumnName (int ci){
if (ci == 0) return "Nome";
if (ci == 1) return "Sexo";
if (ci == 2) return "Idade";
if (ci == 3) return "Endereço";
return "";
}
public Object getValueAt (int ri, int ci){
return dados [ri][ci];
}
}
O ResultSet, Statement, o array dados, e as variáveis "linhas" e "sql" já estão declarados no começo da classe. E essa linha: System.out.println("teste"); é pra testar se estava entrando no while mesmo e imprimindo o teste e está imprimindo normal.
Eu não sei programar no padrão MVC tudo separado por pacotes como to, dao, gui, por isso tudo fica na mesma classe.
E então, vocês podem me dar uma ajuda nesse código? Vou ficar no aguardo, obrigado.