HibernateDaoSupport分页方法
使用HibernateDaoSupport的分页方法,super.getHibernateTemplate().setFetchSize(in);super.getHib...
使用HibernateDaoSupport的分页方法,
super.getHibernateTemplate().setFetchSize(in);
super.getHibernateTemplate().setMaxResults(10);
不管in怎么改,都成第一条数据开始查,始终是是前10条,这是为什么了。
还有请问下spring的HibernateDaoSupport和Hihernate的session那个很好。有什么区别, 展开
super.getHibernateTemplate().setFetchSize(in);
super.getHibernateTemplate().setMaxResults(10);
不管in怎么改,都成第一条数据开始查,始终是是前10条,这是为什么了。
还有请问下spring的HibernateDaoSupport和Hihernate的session那个很好。有什么区别, 展开
4个回答
展开全部
①HibernateDaoSupport分页功能
主要使用的方法是:setFirstResult和setMaxResults,西面是一个简单的例子
/**
* 按HQL分页查询
*
* @param firstResult
* 开始记录号
* @param maxResults
* 最大记录数
* @param hql
* 查询语句,支持连接查询和多条件查询
* @param params
* 参数数组,代替餐hql中的"?"号
* @return 封装List和total的Pager对象
*/
@SuppressWarnings("unchecked")
public PageModel<T> findForPagerByHql(final int firstResult,
final int maxResults, final String hql, final Object[] params) {
PageModel<T> pager = (PageModel<T>) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
for (int position = 0; position < params.length; position++) {
query.setParameter(position, params[position]);
}
int totalCounts = query.list().size(); // 总记录数
// 用于分页查询
if (maxResults > 0) {
query.setFirstResult(firstResult);
query.setMaxResults(maxResults);
}
List<T> list = query.list();
PageModel<T> pageModel = new PageModel<T>();
pageModel.setPageNo(firstResult);
pageModel.setPageSize(maxResults);
pageModel.setTotalRecords(totalCounts);
pageModel.setList(list);
return pageModel;
}
});
return pager;
}
②spring的HibernateDaoSupport和Hihernate的session那个很好?他们之间只是封装有所不同,建议你可以分别阅读以下二者的源码,你读完后会发现,你可以自己写出来!
PS:good luck!如果问题可留言或百度Hi我!~
主要使用的方法是:setFirstResult和setMaxResults,西面是一个简单的例子
/**
* 按HQL分页查询
*
* @param firstResult
* 开始记录号
* @param maxResults
* 最大记录数
* @param hql
* 查询语句,支持连接查询和多条件查询
* @param params
* 参数数组,代替餐hql中的"?"号
* @return 封装List和total的Pager对象
*/
@SuppressWarnings("unchecked")
public PageModel<T> findForPagerByHql(final int firstResult,
final int maxResults, final String hql, final Object[] params) {
PageModel<T> pager = (PageModel<T>) getHibernateTemplate().execute(
new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
for (int position = 0; position < params.length; position++) {
query.setParameter(position, params[position]);
}
int totalCounts = query.list().size(); // 总记录数
// 用于分页查询
if (maxResults > 0) {
query.setFirstResult(firstResult);
query.setMaxResults(maxResults);
}
List<T> list = query.list();
PageModel<T> pageModel = new PageModel<T>();
pageModel.setPageNo(firstResult);
pageModel.setPageSize(maxResults);
pageModel.setTotalRecords(totalCounts);
pageModel.setList(list);
return pageModel;
}
});
return pager;
}
②spring的HibernateDaoSupport和Hihernate的session那个很好?他们之间只是封装有所不同,建议你可以分别阅读以下二者的源码,你读完后会发现,你可以自己写出来!
PS:good luck!如果问题可留言或百度Hi我!~
展开全部
用spring来管理能减少项目的耦合度,利于项目维护,和后期开发,一看你这个就是分页,要用2个方法setFirstResult和setMaxResults;setfirstresult这个方法是显示第几页,setmaxresults是显示每一页的个数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用spring 管理好,用spring来管理能减少项目的耦合度,利于项目维护,和后期开发,一看你这个就是分页,要用2个方法setFirstResult和setMaxResults;setfirstresult这个方法是显示第几页,setmaxresults是显示每一页的个数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
setFetchSize与分页无关的。
你得用firstResult和maxResult两个方法。
两个session都一样。只不过HibernateDaoSupport对session做了封装而已。
用起来方便。
你得用firstResult和maxResult两个方法。
两个session都一样。只不过HibernateDaoSupport对session做了封装而已。
用起来方便。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询