Este artigo descreve a tecnologia de paginação baseada na implementação do hibernato. Compartilhe -o para sua referência, como segue:
Deixe -me primeiro explicar o princípio de implementar a paginação com base no hibernato. Se você buscar 100 dados do banco de dados, precisamos mostrar 10 peças por página. Se estiver a partir de 30, você só precisará definir a posição inicial e o resultado máximo de retorno para inserir o código primeiro: observe que os parâmetros passados incluem a página incluir, que será introduzida posteriormente.
public list <Artigo> Querybypage (nome de usuário final da string, página final da página) {return this.gethibernateTemplate (). ExecuteFind (new Hibernatecallback () {public Object DoinHibernate (Sessão) lança hibernateException, sqLexception {Queryery = Querys.CreatEngy) Query.SetParameter (Nome de usuário);O código da chave acima é o setMaxResults () e o setFirstresult (), que define o valor máximo de exibição e o ponto de partida.
Aqui precisamos de uma classe de ferramenta de página para operar a paginação.
Página.java:
pacote com.fenye; página pública página {// 1. Número de exibições por página (Everypage) private int Everypage; // 2. Número total de registros (TotalCount) privado int TotalCount; // 3. Número total de páginas (totalPage) privado int totalpage; // 4. Página atual (CurrentPage) private int CurrentPage; // 5. Ponto de partida (BEGININDEX) Private int BeginIndex; // 6. Existe uma página anterior (hasPrepage) Private Boolean Hasprepage; // 7. Existe uma próxima página (Hasnextpage) Private Boolean HasNextPage; Página pública (int Everypage, int totalCount, int totalpage, int curtPage, int BeginIndex, Boolean HasPrepage, Boolean HasNextPage) {this.everyPage = EveryPage; this.TotalCount = TotalCount; this.TotalPage = TotalPage; this.CurrentPage = CurrentPage; this.BeginIndex = BEGNIndex; this.hasprepage = hasPrepage; this.hasnextpage = hasNextPage; } // construtor, padrão public Page () {} // Construa o método, defina todos os atributos public int getEveryPage () {return EveryPage; } public void setEveryPage (int EveryPage) {this.everyPage = EveryPage; } public int getTotalCount () {return totalCount; } public void SettaltalCount (int totalCount) {this.totalCount = totalCount; } public int getTotalPage () {return totalpage; } public void SettotalPage (int totalpage) {this.totalpage = totalpage; } public int getTotalPage () {return totalpage; } public void SettotalPage (int totalpage) {this.totalpage = totalpage; } public int getCurrentPage () {return currentPage; } public void setCurrentPage (int currentPage) {this.currentpage = currentpage; } public int getBeginIndex () {return BeginIndex; } public void setBeginIndex (int BeginIndex) {this.beginIndex = BEGNIndex; } public boolean isHasprepage () {return hasPrepage; } public void sethasprepage (hasprepage boolean) {this.hasprepage = hasprepage; } public boolean ishasnextpage () {return hasNextPage; } public void sethasnextpage (boolean hasNextPage) {this.hasnextpage = hasNextPage; }}A classe da ferramenta da página encapsula principalmente as informações da página, quanto dados estão no total, quanto é exibido em uma página, o número de pontos de partida, o número total de páginas, se existe a página anterior, a próxima página e a página atual.
Além disso, é necessária uma classe de ferramentas para páginas de operação, PageUtil.java
pacote com.sanqing.fenye;/** Informações de paginação Classe auxiliar*/classe pública PageUtil {public static Page CreatePage (int Everypage, int totalCount, int currentPage) {EveryPage = getEverypage (Everypage); CurrentPage = getCurrentPage (CurrentPage); int totalpage = getTotalPage (Everypage, TotalCount); int BeginIndex = getBeginIndex (EveryPage, CurrentPage); boolean hasprepage = gethasPrepage (currentpage); Boolean hasNextPage = GethasNextPage (TotalPage, CurrentPage); retornar nova página (Everypage, TotalCount, TotalPage, CurrentPage, BeginIndex, HasPrepage, HasNextPage); } Página estática pública CreatePage (página da página, int totalCount) {int EveryPage = getEveryPage (página.geteveryPage ()); int currentpage = getCurrentPage (página.getCurrentPage ()); int totalpage = getTotalPage (Everypage, TotalCount); int BeginIndex = getBeginIndex (EveryPage, CurrentPage); boolean hasprepage = gethasPrepage (currentpage); Boolean hasNextPage = GethasNextPage (TotalPage, CurrentPage); retornar nova página (Everypage, TotalCount, TotalPage, CurrentPage, BeginIndex, HasPrepage, HasNextPage); } // Defina o número de registros exibidos por página public static int getEverypage (int Everypage) {return EveryPage == 0? 10: Everypage; } // Defina a página atual public static int getCurrentPage (int currentpage) {return curtPage == 0? 1: CurrentPage; } // Defina o número total de páginas, o número total de registros é necessário, quantos public static int getToTalPage (int Everypage, int totalCount) {int totalpage = 0; if (totalCount % EveryPage == 0) {totalpage = totalCount / EveryPage; } else {totalpage = totalCount / EveryPage + 1; } retornar totalpage; } // Defina o ponto de partida, quantos public static int getBeginIndex (int Everypage, int currentpage) {return (currentPage - 1) * EveryPage; } // Defina se existe uma página anterior, e a página atual precisa ser o gethasprage booleano estático público (int currentPage) {return curtPage == 1? Falso: Verdadeiro; } // Defina se existe um próximo, e o número total de páginas e a página atual precisa de GethasnextPage estática pública (int totalpage, int currentpage) {return currentPage == TotalPage || totalpage == 0? Falso: Verdadeiro; }}Crie uma página requer apenas 3 parâmetros. Quanto dados são exibidos em cada página, quanto dados são exibidos na página atual, quanto dados são totais e os outros 4 parâmetros podem ser calculados nesses três.
Portanto, para criar uma página posteriormente, você só precisa chamar este método de ferramenta PageUtil.CreatePage (3 parâmetros) e retornar uma página.
A página retornada é a página do parâmetro anterior, ou seja, a página a ser exibida
Isso será considerado como concluindo a função de paginação.
Espero que a descrição deste artigo seja útil para a programação Java de todos com base na estrutura do Hibernate.