Galera, sou iniciante em Java e em programação e estou vendo diversas vídeo aulas no youtube e me deparei com 2 maneiras diferentes de filtrar dados em uma jTable, uma utilizando o filtro pelo código JAVA e outra utilizando o SQL fazendo uma nova pesquisa no banco e preenchendo novamente a tabela.
Exemplo 1 -
DefaultTableModel modelo = (DefaultTableModel) this.jtableProdutos.getModel();
final TableRowSorter<TableModel> classificador = new TableRowSorter<>(modelo);
this.jtableProdutos.setRowSorter(classificador);
String texto = jtfPesquisa.getText();
classificador.setRowFilter(RowFilter.regexFilter(texto, 1));
Exemplo 2 -
String sql = "select IDcliente as Código, NomeCliente as Nome, CPFcliente as CPF, TelefoneCliente as Telefone, Telefone2Cliente as Celular from tbclientes where NomeCliente like ? order by NomeCliente";
try {
PreparedStatement pst = conex.con.prepareStatement(sql);
pst.setString(1, pesquisa + "%");
conex.rs = pst.executeQuery();
TelaCliente.tblClientes.setModel(DbUtils.resultSetToTableModel(conex.rs));
} catch (Exception e) {
JOptionPane.showMessageDialog(null,e);
}
Gostaria de saber se em questão de desempenho há um diferença muito grande entre os dois, e se sim, qual seria melhor para um programa com muitos registros. E se tiverem uma outra opção, ficarei grato.
Obrigado!