Limitar registros

5 respostas
A

Oi pessoal, eu estou querendo fazer uma listagem por número de registros exibidos, por exemplo 50 por página, só que sinceramente não faço idéia de como faze-lo. Já consigo exibir todos os resultados só que como normalmente são milhares, demora um bucado de tempo para carregar.

para a minha exibição está assim:
<table border = 1>  
            <tr>  
                <td>Ano/Numero</td>  
                <td>Assunto</td>  
                <td>Destino</td>  
                <td>Tipo do documento</td>  
                <td>Gerencia/Divisão</td>  
                <td>Segurança da Informação</td>  
            </tr>  
          
            <%  
                Correspondencia mostrar = new Correspondencia();
                out.println(mostrar.showCorrespondencias());
            %>     

</table>
e a chamada no .java é esta:
public String showCorrespondencias() {
        String retorno = "";

        try {
            Class.forName("org.gjt.mm.mysql.Driver").newInstance();
            Connection conn = DriverManager.getConnection(
                    "jdbc:mysql://localhost:3306/numeracao_correspondencia", "root", "");
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("select ano_num, destino, assunto, tipo_doc, ger_div, seguranca_info from correspondencia");
            while (rs.next()) {
                String txt_ano_num = rs.getString("ano_num");
                String txt_destino = rs.getString("destino");
                String txt_assunto = rs.getString("assunto");
                String txt_tipo_doc = rs.getString("tipo_doc");
                String txt_ger_div = rs.getString("ger_div");
                String txt_seguranca_info = rs.getString("seguranca_info");

                retorno = retorno + "<tr>";
                retorno = retorno + "<td><a href='registroCorrespondencia.jsp?ano_num=" + txt_ano_num + "'>" + txt_ano_num + "</td>";
                retorno = retorno + "<td>" + txt_destino + "</td>";
                retorno = retorno + "<td>" + txt_assunto + "</td>";
                retorno = retorno + "<td>" + txt_tipo_doc + "</td>";
                retorno = retorno + "<td>" + txt_ger_div + "</td>";
                retorno = retorno + "<td>" + txt_seguranca_info + "</td>";
                retorno = retorno + "</tr>";

            }
        } catch (InstantiationException ex) {
            ex.printStackTrace();
        } catch (IllegalAccessException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        return retorno;
    }

sou iniciante/seminoob em java ainda, agradeço a ajuda :D

5 Respostas

alanbrasil1984

no seu caso vc tem que limitar na query que vc executa.

no caso do mysql eu uso

"LIMIT “+tamanhoPagina+” OFFSET "+(((pagina-1)*tamanhoPagina));

A

oi alan, obrigado pela resposta, mais tem como você me mostrar um exemplo de empregabilidade? Eu entendi+/- ^^
vlw

alanbrasil1984

Olha esse link que vc vai entender… a sua paginação vai ser a nivel de query nativa…

http://www.petefreitag.com/item/451.cfm

G

andre.froes:
oi alan, obrigado pela resposta, mais tem como você me mostrar um exemplo de empregabilidade? Eu entendi+/- ^^
vlw

Brother, tu faria tipo “SELECT * FROM TABELA LIMIT 0, 49”, na proxima tu colocaria 50, 99 e assim sucessivamente. Tu vai ter que usar alguma lógica pra controlar a navegação (página que esta).

Só nao sei bem aonde comeca a contagem no mysql (se é no 0 ou no 1). Da uma olhada na documentação do bagulho.

A

vlw pela dica pessoal, agora eu já me resolvo aqui e posto o resultado
abraços

Criado 15 de julho de 2009
Ultima resposta 15 de jul. de 2009
Respostas 5
Participantes 3