//查询的sql语句StringBuffer sql = new StringBuffer(" select a.address as address ,a.zzrs as zzrs ,SUBSTRING (convert(varchar (20),(a.zzrs*1.0/b.zs*100)),1,4)+'%' as bfb from "); sql.append(" (select address ,count(address) as zzrs from History group by address) a "); sql.append(" ,(select count(*) as zs from History) b order by a.zzrs desc ");//查询方法public Pagination getPaginactionHql_(final String sql,final String countSql, final int pageSize, final int pageNumber) { return (Pagination) this.getHibernateTemplate().execute( new HibernateCallback() { // 返回Paginaction int totalCount = ((Integer) queryObjectCount(countSql)) .intValue(); Pagination pagination = new Pagination(pageSize, pageNumber, totalCount); public Object doInHibernate(Session session) throws HibernateException, SQLException { Query query = session.createSQLQuery(sql). addScalar("address", new org.hibernate.type.StringType()). addScalar("zzrs", new org.hibernate.type.StringType()). addScalar("bfb", new org.hibernate.type.StringType()); // 最大记录数 query.setMaxResults(pageSize); // 偏移量 query.setFirstResult(pageSize * (pageNumber - 1)); List list = query.list(); if (list.size() > 0) { pagination.setList(list); return pagination; } else { return null; } } }); }//取值for(Iterator<Object[]> a = this.pagination.getList().iterator();a.hasNext();){ Object[] test = a.next(); System.out.println((String)test[0]+" "+(String)test[1]+" "+(String)test[2]); } System.out.println("*******************************"); Object[] objs = this.pagination.getList().toArray(); for(Object o :objs){ Object[] oo = (Object[]) o; System.out.println(oo[0]+" "+oo[1]+" "+oo[2]); }
?