Galera peço a ajuda de vocês, tenho uma JTable que retorna os valores do Banco de dados, porém quero limitar a pesquisa por exemplo, tenho uma tabela no banco de dados com um número de registros 50 mil por exemplo, Se eu colocar para fazer uma pesquisa de todos os registros, creio que isso causara uma certa lentidão em meu sistema, então gostaria de saber como faço por exemplo para ele listar apenas 20 registros, e para exibir os outros 20 eu pretendo usar um botão, mas não faço ideia de como fazer isso.
Tem como limitar a busca no código SQL porém, não consigo listar os proximo.
Caso não tenha ficado claro, basta dizer que vou tentar explicar melhor.
Obs: estou usando DefaultTableModel
Evento do botão de pesquisaLog_control PesquisarLog = new Log_control();
List<Log_bean> pesquisaLog = PesquisarLog.ListarLogs(jtf_PesquisarLog.getText() + "%",jtf_PesquisarLog.getText(),jtf_PesquisarLog.getText());
MostrarPesquisaLog(pesquisaLog);
public List<Log_bean> ListarLogs (String NomeMed,String Usuario ,String cBarras) throws SQLException{
List<Log_bean> Registro = new ArrayList();
AcessoMySql mysql = new AcessoMySql();
pstm = (PreparedStatement) mysql.conectar().prepareStatement(ConsultaLogs);
pstm.setString(1, NomeMed);
pstm.setString(2, Usuario);
pstm.setString(3, cBarras);
rs = pstm.executeQuery();
Log_bean Log;
while (rs.next()){
Log = new Log_bean();
Log.setId_user(rs.getInt("Id_user"));
Log.setAcao(rs.getString("acao"));
Log.setData(rs.getDate("DataAtualizacao"));
Log.setHora(rs.getTime("HORA"));
Log.setId_med(rs.getInt("id_med"));
Log.setNome_med(rs.getString("nome_med"));
Log.setLogin_user(rs.getString("login_user"));
Log.setId_registro(rs.getInt("id_reg"));
Log.setTipo(rs.getString("tipo_med"));
Log.setQuantidade(rs.getString("qtd"));
Log.setCod_entrada(rs.getInt("ID_ENTRADA"));
Registro.add(Log);
}
mysql.desconectar();
return Registro;
}
Metodo para exibir a pesquisa na JTable
private void MostrarPesquisaLogData(List<Log_bean> pesquisa) {
while (tm_log.getRowCount() > 0) {//TODA VEZZ QUE EFETUAR UMA NOVA PESQUISA..
tm_log.removeRow(0); //...IRA LIMPAR A PESQUISA ANTERIOR.
}
if (pesquisa.isEmpty()) {//SE O RESULTADO DA PESQUISA FOR VAZIO EXIBE A MSG
JOptionPane.showMessageDialog(this, "Código de entrada não encontrado. ");
} else {
String[] campos = new String[]{null};
for (int i = 0; i < pesquisa.size(); i++) {
System.out.println("MOSTRAR LOG NA JTABLE");
//OBS: TEM QUE TER A MESMA QUANTIA DE CAMPOS DO DEFAULTTABLEMODEL
tm_log.addRow(campos);//ENQUANTO A CONDIÇÃO FOR VERDADE VAI ADICIONAR UMA LINHA
Date DataLog = pesquisa.get(i).getData();
SimpleDateFormat formatadata = new SimpleDateFormat("dd/MM/yyy");
String Data = formatadata.format(DataLog);
String login = pesquisa.get(i).getLogin_user();
String acao = pesquisa.get(i).getAcao();
String nomemed = pesquisa.get(i).getNome_med();
String tipomed = pesquisa.get(i).getTipo();
Time Hora = pesquisa.get(i).getHora();
String qtd = pesquisa.get(i).getQuantidade();
int cod_entrada = pesquisa.get(i).getCod_entrada();
System.out.println("codigo entrada =" + cod_entrada);
System.out.println("quantidade = " + qtd);
if (acao.equals("INSERT")) {//ALTERTAR DE INSERT PARA ENTRADA NO BD
tm_log.setValueAt(pesquisa.get(i).getId_registro(), i, 0);
tm_log.setValueAt((Data), i, 1);
tm_log.setValueAt("O usuário " + login + " efetuou uma nova entrada do médicamento " + nomemed + " do tipo " + tipomed + " com " + qtd + " unidades no dia " + Data + " as " + Hora, i, 2);
} else if (acao.equals("Atualiza")) {//ALTERAR DE DELETE PARA SAIDA NO BD
tm_log.setValueAt(pesquisa.get(i).getId_registro(), i, 0);
tm_log.setValueAt((Data), i, 1);
tm_log.setValueAt("O usuário " + login + " atualizou a entrada do médicamento " + nomemed + " do tipo " + tipomed + " no dia " + Data + " as " + Hora + " para " + qtd + " unidades", i, 2);
} else if (acao.equals("DELET")) {
tm_log.setValueAt(pesquisa.get(i).getId_registro(), i, 0);
tm_log.setValueAt((Data), i, 1);
tm_log.setValueAt("O usuário " + login + " efetuou uma nova saida do médicamento " + nomemed + " do tipo " + tipomed + " com " + qtd + " unidades no dia " + Data + " as " + Hora, i, 2);
} else {
tm_log.setValueAt(pesquisa.get(i).getId_registro(), i, 0);
tm_log.setValueAt((Data), i, 1);
tm_log.setValueAt("O usuário " + login + " atualizou a saida do médicamento " + nomemed + " do tipo " + tipomed + " no dia " + Data + " as " + Hora + " para " + qtd + " unidades", i, 2);
}
}
}
}