java分页查询 方法一 Query
2010-07-21 09:01
429 查看
方法一:
1 Action文件:stationByPage = this.sManager.getAndSearch(mainForm, searchVal, user);
2 manager文件:
public List getAndSearch(SForm form,String searchVal,User user){
int totalPage = 1;
int pageNum = form.getPage();
String orgId = form.getOrgId();
int count = sDAO.getNumOfStationsBySearch(orgId, searchVal, user);
form.setRecordNum(count);
String orderColum = form.getOrderColum();
if(orderColum != null && orderColum != ""){
sDAO.setOrderColum(orderColum);
sDAO.setAsc(form.getAsc());
}
totalPage = (count != 0 && count%form.getPageRowNum() == 0) ?
(count/form.getPageRowNum()) : (count/form.getPageRowNum() + 1);
form.setTotal(totalPage);
if (form.getPage() < 1) { // 默认首页
form.setPage(1);
}
if (form.getPage() > totalPage) { // 超过最大页,默认尾页
form.setPage(totalPage);
}
List result = this.sDAO.findByPageAndSearch(pageNum, orgId, searchVal, user);
if (result.isEmpty() && pageNum >1){
form.setPage(--pageNum);
return sDAO.findByPageAndSearch(pageNum, orgId, searchVal, user);
}
return result;
}
3 Dao文件:
public List findByPageAndSearch(int pageNum,String orgId,String searchVal,User user) {
try {
String hql = "from S where station_name like '%" + searchVal + "%'" ;
hql += " order by stationName";
Query query = getSession().createQuery(hql);
query.setFirstResult((pageNum-1) *PAGESIZE);
query.setMaxResults(PAGESIZE);
return query.list();
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}
1 Action文件:stationByPage = this.sManager.getAndSearch(mainForm, searchVal, user);
2 manager文件:
public List getAndSearch(SForm form,String searchVal,User user){
int totalPage = 1;
int pageNum = form.getPage();
String orgId = form.getOrgId();
int count = sDAO.getNumOfStationsBySearch(orgId, searchVal, user);
form.setRecordNum(count);
String orderColum = form.getOrderColum();
if(orderColum != null && orderColum != ""){
sDAO.setOrderColum(orderColum);
sDAO.setAsc(form.getAsc());
}
totalPage = (count != 0 && count%form.getPageRowNum() == 0) ?
(count/form.getPageRowNum()) : (count/form.getPageRowNum() + 1);
form.setTotal(totalPage);
if (form.getPage() < 1) { // 默认首页
form.setPage(1);
}
if (form.getPage() > totalPage) { // 超过最大页,默认尾页
form.setPage(totalPage);
}
List result = this.sDAO.findByPageAndSearch(pageNum, orgId, searchVal, user);
if (result.isEmpty() && pageNum >1){
form.setPage(--pageNum);
return sDAO.findByPageAndSearch(pageNum, orgId, searchVal, user);
}
return result;
}
3 Dao文件:
public List findByPageAndSearch(int pageNum,String orgId,String searchVal,User user) {
try {
String hql = "from S where station_name like '%" + searchVal + "%'" ;
hql += " order by stationName";
Query query = getSession().createQuery(hql);
query.setFirstResult((pageNum-1) *PAGESIZE);
query.setMaxResults(PAGESIZE);
return query.list();
} catch (RuntimeException re) {
log.error("find by example failed", re);
throw re;
}
}
相关文章推荐
- java中软件开发的假分页和模糊查询的方法
- Java的分页查询方法
- java分页查询 方法二 Criteria
- 【Java】Hibernate(三)Query接口实现分页查询
- 项目中不可缺少的分页查询方法
- 使用java.util.List的subList方法进行分页
- 有关Java从数据库查询出的数据导出Excel POI分页功能总结
- 用Java实现异构数据库的高效通用分页查询功能
- JAVA入门[10]-mybatis分页查询
- Hibernate HQL与Native_SQL_查询_Query接口_iterate方法
- nutz 结合QueryResult,Record 自定义分页查询,不构建pojo 整合
- 使用ADF-BC 实现查询功能之十:重写prepareRowSetForQuery方法设置变量
- Java实现分页查询
- 【转】大数据量下,分页查询优化方法解释
- Thinkphp分页时查询条件保存方法
- java程序员菜鸟进阶(十一)Extjs4常用功能(三)——列表grid的使用(带综合查询,分页)
- JAVA高级【4.7】《Java核心技术2》数据库-简单分页查询
- oracle分页排序的SQL查询方法
- Java连接mysql数据库并进行内容查询的方法
- cakephp2.X多表联合查询join及使用分页查询的方法