/**
* 使用hql 语句进行操作
* @param hql HSQL 查询语句
* @param offset 开始取数据的下标
* @param length 读取数据记录数
* @return List 结果集
*/
public List getListForPage2(final String hql, final int offset, final int length) {
List list = this.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;
}
/**
* 使用hql 语句进行操作
* @param hql 查询语句
* @param currentPage 当前页码
* @param pageSize 读取数据记录数
* @return List 结果集
*/
public List getListForPage(final String hql, final int currentPage,final int pageSize) {
//调用模板的execute方法,参数是实现了HibernateCallback接口的匿名类
List list = getHibernateTemplate().executeFind(
new HibernateCallback() {
//重写其doInHibernate方法返回一个object对象,
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
List queryList = PageNoUtil.getList(session,hql,currentPage,pageSize);
return queryList;
}
});
return list;
}
public int getCount(){
String str = this.getHibernateTemplate().find("select count(*) from Person").get(0).toString();
return Integer.parseInt(str);
}
/* *//**
* 使用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);
}
criteria.setFirstResult(offset);
criteria.setMaxResults(length);
return criteria.list();
}
});
return list;
}
*/