sql 几种分页方法

action层,传入page参数

public String findApplication(){
		Page page  = new Page();
		page.setStart(this.getStart());
		page.setLimit(this.getLimit());
		List results = service.findApplication(application, page);
		String json = this.listToGridJoson(page, results);
		this.setJsonStr(json);
		return SUCCESS;	
	}

home层,处理方式。

1.截取

if (null != page) {
			page.setTotalCount(count(sbf.toString()));
			query.setMaxResults(page.getLimit());
			query.setFirstResult(page.getStart());
		}

	private Integer count(String hql){
		int index = hql.indexOf("FROM");
		hql = hql.substring(index);
		StringBuilder countHql = new StringBuilder("SELECT COUNT(*) ");
		countHql.append(hql);
		Query query = sessionFactory.getCurrentSession().createQuery(countHql.toString());
		List result = query.list();
		Long count = (Long)result.get(0);
		return count.intValue();
	}

2.直接计数

String sqlcount = "SELECT COUNT(*) from (select DISTINCT supplier as \"supplier\" from SUPPLIER_MANAGEMENT)";
		String a = sessionFactory.getCurrentSession().createSQLQuery(sqlcount).list().get(0).toString();
		 int dcount = Integer.parseInt(a);
		if (null != page) 
		{
			page.setTotalCount(dcount);
			query.setMaxResults(page.getLimit());
			query.setFirstResult(page.getStart());
		}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值