hibernate物理分页

/** * 分页查询数据(采用SQL注入的方式) * * @param hql * :查询数据 * @param conditions * :为需要查询的条件 * @param page * :当前页码 * @param pageSize * :每页多少行数据 * @return */ public List getSelectResult(String hql, int page, int pageSize) { final String hsql = hql; final int startRow = (page - 1) * pageSize; // 得到开始的行数 final int endRow = page * pageSize;// 得到结束的行数 List list = hibernateTemplate.executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createQuery(hsql); query.setFirstResult(startRow); query.setMaxResults(endRow); List list = query.list(); return list; } }); return list; } /** * 分页查询数据(采用Criteria的方式) * * @param criteria为DetachedCriteria类型的条件 * @param conditions * :为需要查询的条件 * @param page * :当前页码 * @param pageSize * :每页多少行数据 * @return */ public List getCriteriaSelectResult(DetachedCriteria criteria, int page, int pageSize) { int startRow = (page - 1) * pageSize; // 得到开始的行数 int endRow = page * pageSize;// 得到结束的行数 return hibernateTemplate.findByCriteria(criteria, startRow, endRow); }

你可能感兴趣的:(sql,Hibernate)