使用HibernateTemplate时,怎么实现分页查找 使用hibernate实现分页查询,要求给出page类,以及通用的pagequery方法
使用HibernateTemplate时,怎么实现分页查找
OK。。我刚好有做这一段。。给你看看吧
/**
* 使用hql 语句进行操作
*
* @param hql
* HSQL 查询语句
* @param offset
* 开始取数据的下标
* @param length
* 读取数据记录数
* @return List 结果集
*/
protected List findByPageBean(final int pageNo, final int pageSize,
final String hql) throws Exception {
List list = null
try {
list = this.getHibernateTemplate().executeFind(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql)
query.setFirstResult(pageNo)
query.setMaxResults(pageSize)
List list = query.list()
return list
}
})
} catch (Exception e) {
throw e
}
return list
}
强吧。。唉。。你也不给点分。。杯具!
使用hibernate实现分页查询,要求给出page类,以及通用的pagequery方法
你可以参考一下下面的一个例子,这个不属于hibernate范畴,应该是java的一个特性吧。
public class BaseDaoImplimplements BaseDao { private Class entityClass public BaseDaoImpl() { this.entityClass = null Class c = getClass() Type type = c.getGenericSuperclass() if (type instanceof ParameterizedType) { Type[] parameterizedType = ((ParameterizedType) type).getActualTypeArguments() this.entityClass = (Class) parameterizedType[0] } } }
hibernate中分页查询怎么做的
public ListFindAll(final int page,final int pagesize) {//page是第几页 pagesize是 每页多少个 return this.getHibernateTemplate().execute( new HibernateCallback>() { @Override public List doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery("from ComUserEntity") //查询的JavaBean为 ComUserEntity query.setFirstResult((page-1)*pagesize) //设置 查询起点 query.setMaxResults(page*pagesize) //查询终点 忘了是 pagesize 还是 page*pagesize了 return query.list()} } ) }
SSH中如何用HIBERNATE分页查询
一楼的分页信息无法返回,尤其是总数、当前页这些是不能再计算了,不够灵活
protected List findPage(PageInfo pageObject, String queryStr)
{
int rowCount = getTotal(queryStr)
int pageCount = PageInfo.pageCount(rowCount, pageObject.getPageSize())
int pageCurrent = pageObject.getPageCurrent()
pageObject.setPageCount(pageCount)
pageObject.setPageCurrent(pageCurrent)
pageObject.setRowCount(rowCount)
Query query = getSession().createQuery(queryStr)
query.setFirstResult((pageCurrent - 1) * pageObject.getPageSize())
query.setMaxResults(pageObject.getPageSize())
List list = query.list()
return list
}
所在类是继承了org.springframework.orm.hibernate3.support.HibernateDaoSupport
类。