java分页查询 方法一 Query

本文介绍了一种在Java环境中实现带有搜索功能的分页显示的方法。通过Action、Manager及Dao三层架构来完成从用户界面到数据库查询的过程。具体包括设置查询条件、获取总记录数、确定分页参数、执行分页查询等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:

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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

manjianghong86

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值