条件查询及分页技术工具类

来源:互联网 发布:航海家炒股软件 编辑:程序博客网 时间:2024/06/05 14:17
import java.sql.SQLException;
import java.util.List;


import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;


public class PageHibernateCallback<T> implements HibernateCallback<List<T>>{

private String hql;// 执行的hql语句
private Object[] params;// 实际参数
private int startIndex;//显示数据的起始位置
private int pageSize;//每页显示数据条数



public PageHibernateCallback(String hql, Object[] params,
int startIndex, int pageSize) {
super();
this.hql = hql;
this.params = params;
this.startIndex = startIndex;
this.pageSize = pageSize;
}


public List<T> doInHibernate(Session session) throws HibernateException,
SQLException {
//1 执行hql语句
Query query = session.createQuery(hql);
//2 实际参数
if(params != null){
for(int i = 0 ; i < params.length ; i ++){
query.setParameter(i, params[i]);
}
}
//3 分页
query.setFirstResult(startIndex);
query.setMaxResults(pageSize);

return query.list();
}


}
0 0