La Red de Conocimientos Pedagógicos - Currículum vitae - Cómo realizar paginación en hibernación de primavera.

¿Hay algún ejemplo?

Cómo realizar paginación en hibernación de primavera.

¿Hay algún ejemplo?

//PageInfo.java define una clase de paginación

paquete ztdz.hibernate;

import java.util.List;

public class PageInfo {

lista de lista pública; // Devuelve el conjunto de registros

cadena pública desde; //hql de

cadena pública donde //hql donde;

public String orderby; //hql orderby

public int totalCount=0; //Número total de registros

public int pageCount=0; número de páginas de registros

public int pageTotalNum=0; //Número total de páginas

public int curPage=0; //Página actual

public boolean haveNext; =false; //Si hay una página siguiente

public boolean havePre=false; //Si hay una página anterior

public List getList() {

lista de retorno;

}

setList público vacío (lista de lista) {

this.list = lista; /p>

public int getTotalCount() {

return totalCount

}

public void setTotalCount(int totalCount) {

this.totalCount = totalCount;

}

public int getPageCount() {

return pageCount

}

public void setPageCount(int pageCount) {

this.pageCount = pageCount

}

public int getPageTotalNum() {

return pageTotalNum ;

}

public void setPageTotalNum(int pageTotalNum) {

this.pageTotalNum = pageTotalNum

}

public int getCurPage() {

return curPage

}

public void setCurPage(int curPage) {

this. curPage = curPage;

}

public boolean isHaveNext() {

return haveNex

t;

}

public void setHaveNext(boolean haveNext) {

this.haveNext = haveNext;

public boolean isHavePre() {

return havePre

}

public void setHavePre(boolean havePre) {

esto .havePre = havePre;

}

}

//Clase básica BaseDAO.java para acceso a datos. Para paginación, utilice el método getPage().

}

}

//BaseDAO.java clase básica para acceso a datos. p>

/**

*

*/

paquete ztdz.hibernate.dao.impl

importar java; .sql .SQLException;

importar java.util.List;

importar org.apache.commons.logging.Log;

importar org.apache.commons .logging .LogFactory;

importar org.hibernate.HibernateException;

importar org.hibernate.Query;

importar org.hibernate.Session;

importar org.hibernate.Transaction;

importar org.springframework.orm.hibernate3.HibernateCallback;

importar org.springframework.orm.hibernate3.HibernateTemplate;

importar org.springframework.orm.hibernate3.support.HibernateDaoSupport;

importar ztdz.hibernate.PageInfo;

importar ztdz.hibernate.dao.IBaseDAO;

/**

* @author zhangzhw

*

*/

clase pública BaseDAO extiende HibernateDaoSupport implementa IBaseDAO {

registro final estático privado = LogFactory.getLog(BaseDAO.class);

cadena pública de

cadena pública donde; > public String orderBy;

public String queryString;

/**

* Implementar las funciones básicas de adición, eliminación, modificación y consulta

*

* @autor zhangzhw

>

* @serialData 2 de junio de 2008

*/

lista pública findAll(String string) {

// TODO Código auxiliar de método generado automáticamente

log.debug("buscar todos los registros");

intente {

return getHibernateTemplate().find(string);

} catch (RuntimeException re) {

log.error("buscar todo fallido", re

throw re

});

}

public int getCount(String from, String donde) {

String fromTrim = from.substring(from.indexOf("from"));

p>

return (Entero) findRec("select count(*) " fromTrim " " donde)

.get(0);

}

public void adjuntarClean(Objeto objeto) {

}

public void adjuntarDirty(Objeto objeto) {

}

public void eliminar (objeto objeto) {

log.debug("eliminar instancia de usuarios");

intente {

getHibernateTemplate().delete(objeto) ;

p>

log.debug("eliminación exitosa");

} catch (RuntimeException re) {

log.error("eliminación falló", re);

p>

throw re;

}

}

lista pública findRec(String cadena ) {

this.queryString = string;

log.debug("buscar registros");

prueba {

return getHibernateTemplate ().find(queryString);

} catch (RuntimeException re) {

log.error("buscar todo fallido", re

throw); re;

}

}

public void save(Objeto objeto) {

log.debug("guardar instancia de usuarios

e");

intente {

getHibernateTemplate().save(object);

log.debug("guardado exitoso");

} catch (RuntimeException re) {

log.error("al guardar falló", re

throw re

}

}

public void merge(Objeto objeto) {

log.debug("guardando instancia de Usuarios");

try {

>

getHibernateTemplate().merge(objeto);

log.debug("guardado exitoso");

} catch (RuntimeException re) {

log.error("al guardar falló", re);

tirar re;

}

}

/**

* La siguiente es una consulta basada en paginación

*

* @author zhangzhw

* @serialData 2 de junio de 2008 p>

*/

/**

* método getPage, obtiene la información de la página N

*/

public PageInfo getPage(String from, String donde, String orderBy,

int pageNo, int pageCount) {

PageInfo pageInfo = new PageInfo(); > pageInfo .from = desde

pageInfo.where = donde

pageInfo.orderby = orderBy

pageInfo.pageCount = pageCount

pageInfo.totalCount = getCount(desde, dónde);

//Información de paginación

if (pageInfo.totalCount pageCount == 0) {

pageInfo.pageTotalNum = pageInfo.totalCount / pageInfo.pageCount;

if (pageInfo.pageTotalNum == 0)

pageInfo.pageTotalNum = 1

} más;

pageInfo.pageTotalNum = pageInfo.totalCount / pageCount 1

// Establece la página actual

if (pageNo lt; 1)

páginaInf

o.curPage = 1;

else if (pageNo gt; pageInfo.pageTotalNum)

pageInfo.curPage = pageInfo.pageTotalNum

else

pageInfo.curPage = pageNo;

// Establece la información de la página anterior y siguiente

if (pageNo lt; pageInfo.pageTotalNum)

pageInfo. haveNext = true;

if (pageNo gt; 1)

pageInfo.havePre = true;

// error de código de consulta de paginación

// pageInfo.list=findRec(desde donde " limit " (pageNo-1)*pageCount

// " , " pageCount " " orderBy);

// pageInfo. list =findRec(de donde " límite 1, 3 " orderBy );

// Método de implementación sin error

pageInfo.list = findRec(de donde orderBy, (pageInfo.curPage - 1)

* pageCount, pageCount);

return pageInfo;

}

public PageInfo getPage(String hql, int pageNo, int pageCount) {

// Descomponer hql en desde donde orderBy

Cadena desde, dónde, orderBy;

from = parseHql(hql, 1);

donde = parseHql(hql, 2);

orderBy = parseHql(hql, 3);

return getPage(from, donde, orderBy, pageNo, pageCount

}

información de página pública getPage(String hql, int pageNo) {

return getPage(hql, pageNo, 20); p> }

// Método adicional, desmantelar hql (hql simple, no usar select, no usar límite, etc.)

private String parseHql(String hql, int type ) {

cambiar (tipo) {

caso 1:

if (hql.indexOf("where") gt; 0)

return hql .substring(1, hql.indexOf("dónde") - 1);

> else if (hql.indexOf("orderby") gt; 0)

return hql.substring(1, hql.indexOf("orderby") - 1);

else

devolver nulo;

caso 2:

if (hql.indexOf("where") gt; 0) {

if (hql.indexOf("orderby") gt; 0)

return hql.substring(hql.indexOf("where"), hql

.indexOf("orderby") - 1);

else

return hql.substring(hql.indexOf("where"));

} else

return null;

caso 3:

if (hql.indexOf("orderby") gt; 0)

return hql.substring(hql.indexOf(" orderby"));

else

devolver nulo;

}

devolver nulo;

}

// Método de consulta de registros en páginas específicas

public List findRec(final String hql, final int firstResult,

final int maxResults) {

return getHibernateTemplate().executeFind(new HibernateCallback() {

objeto público doInHibernate(Session s) lanza HibernateException,

SQLException {

consulta de consulta = s.createQuery(hql);

query.setFirstResult(firstResult);

query.setMaxResults(maxResults);

Lista lista = query.list( );

lista de retorno

}

});

}

público booleano transSave(final). Lista de lista) {

return (booleano) getHibernateTemplate().execute(

new HibernateCallback() {

objeto público doInHibernate(Session s)

lanza HibernateException,

SQLException {

prueba {

for (Object o : list) {

s.save(o); p>

} catch (Excepción e) {

e.printStackTrace();

devuelve falso

}

return true;

}

});

}

public boolean transSave(lista final[] lista) {

return (booleano) getHibernateTemplate().execute(

new HibernateCallback() {

objeto público doInHibernate(Session s)

lanza HibernateException, SQLException {

intente {

for (int i = 0; i lt; list.length; i) {

for (Objeto o: lista[i ]) {

s.save(o);

}

}

} captura (Excepción e) {

e.printStackTrace();

devuelve falso

}

devuelve verdadero;

});

}

public boolean transSave(lista final[], bandera booleana)

{

return (Booleano) getHibernateTemplate().execute(

new HibernateCallback() {

objeto público doInHibernate(Session s)

lanza HibernateException, SQLException {

intente {

for (int i = 0; i lt; list.length; i) {

for (Objeto o: lista[i]) {

s.saveOrUpdate(o);

}

}

} captura (Excepción e) {

e .printStackTrace();

devuelve falso;

}

devuelve verdadero;

}

});

}

No escribiré sobre otras configuraciones. Si aún no lo comprende, se recomienda aprender desde lo básico.