集成Spring后HibernateTemplate实现分页
2012-12-25 00:15
337 查看
Spring 整合 Hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate的回调机制扩展hibernateTemplate的功能实现分页
[java] view
plaincopy
/**
* 使用hql 语句进行操作
* @param hql
* @param offset
* @param length
* @return List
*/
public List getListForPage(final String hql, final int offset,
final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list;
}
});
return list;
}/**
* 使用criterion进行操作
* @param arg
* @param criterions
* @param offset
* @param length
* @return List
*/
protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(arg);
//循环遍历添加约束条件
for (int i = 0; i < criterions.length; i++) {
criteria.add(criterions[i]);
}
criteria.setFirstResult(offset);
criteria.setMaxResults(length);
return criteria.list();
}
});
return list;
}
// 获得集合的总数(聚合查询)
public Integer getSaleChanceListCount() {
final String hql = "select count(*) from SaleChanceInfo si";
Integer result = null;
result = (Integer)getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0)
throws HibernateException, SQLException {
Query query = arg0.createQuery(hql);
return query.uniqueResult();
}
});
return result;
}
[java] view
plaincopy
/**
* 使用hql 语句进行操作
* @param hql
* @param offset
* @param length
* @return List
*/
public List getListForPage(final String hql, final int offset,
final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list;
}
});
return list;
}/**
* 使用criterion进行操作
* @param arg
* @param criterions
* @param offset
* @param length
* @return List
*/
protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(arg);
//循环遍历添加约束条件
for (int i = 0; i < criterions.length; i++) {
criteria.add(criterions[i]);
}
criteria.setFirstResult(offset);
criteria.setMaxResults(length);
return criteria.list();
}
});
return list;
}
// 获得集合的总数(聚合查询)
public Integer getSaleChanceListCount() {
final String hql = "select count(*) from SaleChanceInfo si";
Integer result = null;
result = (Integer)getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session arg0)
throws HibernateException, SQLException {
Query query = arg0.createQuery(hql);
return query.uniqueResult();
}
});
return result;
}
相关文章推荐
- 集成Spring后HibernateTemplate实现分页
- 【java】spring-data-jpa 集成hibernate实现多条件分页查询
- spring 中hibernateTemplate实现分页
- 【第十一章】 SSH集成开发积分商城 之 11.2 实现通用层 ——跟我学spring3
- Flex集成spring实现消息推送
- springboot\maven 页面图片展示商品实现分页
- MongoDB自动增长id实现、自定义函数调用、与Spring集成
- SSM框架中集成TKMybatis+PageHelper实现高效查询和分页
- spring + velocity实现分页程序
- 简单的spring-data集成mongoDB项目,实现crud的功能
- SpringBoot学习笔记之CXF集成(实现用户验证)
- 实现一致性Spring集成Redis实例入门
- Spring与RMI集成实现远程访问
- struts+spring+hibernate实现数据库记分页显示
- spring boot 1.4.2.RELEASE+Thymeleaf+mybatis 集成通用maper,与分页插件:
- compass和spring 集成实现实时搜索
- 基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
- springboot - 集成MongoDB实现
- 37. Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】
- SpringBoot+Mybatis+ Druid+PageHelper 实现多数据源并分页