Popular AbstractTableModel com dados do Banco

Pessoal estou parando de usar DefaultTableModel e criando meu próprio Model, mas nessa tentativa estou tentando popular a tabela com os dados mas não estou conseguindo alguem pode me sugerir algum modelo vou anexar o meu código;

vocês podem perceber que há um return no private Servico ele só gera um dados o ultimo capitado no banco como eu faço para pegar todos e colocar na classe tipo um Loop dentro dessa classe para não dar erro.

[code] private Servico getServico(){

     Servico serv = new Servico();
 
   
     try {
         
        
       conn = DriverManager.getConnection("jdbc:odbc:fashionhair","root","");
        
       Statement stmt = conn.createStatement();
      
       ResultSet res = stmt.executeQuery("Select * from servico order by (cod_serv)");
       
      

       while (res.next()){
       
      serv.setcodigoservico(res.getString("cod_serv")); 
      serv.setnomeservico(res.getString("nome_servico"));
      serv.setprecoservico(res.getString("preco"));
      
  
      
       }   
       
       res.close();
       
        } catch (SQLException ex) {
           ex.printStackTrace();
        } 

return serv;

}

private List<Servico> getServicos() {
                
	List<Servico> sv = new ArrayList<Servico>();
	for (int i = 0; i <sv.size(); i++) {
		sv.add(getServico());
	}
	return sv;
}

private void addServico() {
	getModel().addServico(getServico());
}

private void addServicos() {
	getModel().addListaDeServico(getServicos());
}[/code]

att

Gabriel

A maneira certa é popular a lista direto:

private List&lt;Servico&gt; getServicos(){ List&lt;Servico&gt; servicos = new ArrayList&lt;Servico&gt;(); try { conn = DriverManager.getConnection("jdbc:odbc:fashionhair","root",""); PreparedStatement stmt = conn.prepareStatement("SELECT * FROM servico ORDER BY cod_serv"); ResultSet res = stmt.executeQuery(); while (res.next()){ Servico serv = new Servico(); serv.setcodigoservico(res.getString("cod_serv")); serv.setnomeservico(res.getString("nome_servico")); serv.setprecoservico(res.getString("preco")); servicos.add(servico); } res.close(); stmt.close(); conn.close(); } catch (SQLException ex) { ex.printStackTrace(); } return servicos }

Ah entendi valeu mesmo ViniGodoy deu certo aqui Obrigado =) :smiley:

Outra ocorreu de eu ter que usar um INNER JOIN em uma de minhas JTable, pelo que percebi ele não faz igual o SELECT quando está no laço ele já vai setando na JTable. tenho duas perguntas:

1- Como eu devo setar dados do banco atraves do INNER JOIN?
2- Porque existe essa diferencia no AbstractTableModel quando vamos setar dados vindo do SELECT e INNER JOIN?

att.

Gabriel