@Fabiano_Fernandes escreveu:
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 pesquisa
Log_control PesquisarLog = new Log_control(); List<Log_bean> pesquisaLog = PesquisarLog.ListarLogs(jtf_PesquisarLog.getText() + "%",jtf_PesquisarLog.getText(),jtf_PesquisarLog.getText()); MostrarPesquisaLog(pesquisaLog);
Metodo da classe de controle
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); } } } }
Mensagens: 1
Participantes: 1