Sql实现分页和JAVA的List实现分页示例:
select x.*
from (select rownum as rn, a.*
from (select t.jobid,
t.logid,
t.kddate,
t.status,
t.description,
to_char(to_date('19700101', 'yyyymmdd') +
t.starttime / 86400 / 1000 +
to_number(substr(tz_offset(sessiontimezone), 1, 3)) / 24, --毫秒long类型时间戳准确地转为格式日期字符串
'yyyy-mm-dd hh24:mi:ss') as runtime,
(t.endtime - t.starttime) as costtime
from kdgs_file_exesum t
where t.jobid = 1001863
and t.kddate = to_char(sysdate, 'yyyymmdd')
and (t.status = 2 or 0 = 0)
order by t.logid asc) a
where rownum <= 50 or 0=0) x --0=0第一个0为入参如果为0则表示不分页
where x.rn > 0;
select count(1) as logNum
from kdgs_file_exesum t
where t.jobid = 1001863
and t.kddate = to_char(sysdate, 'yyyymmdd')
and (t.status = 2 or 0 = 0)
JAVA中实现效率低但非常灵活 :
List retList = retListTemp.subList(offset, offset + pagesize > retListTemp.size() ? retListTemp.size() : (offset + pagesize));
retMap.put("retList", retList);
retMap.put("listCount", retListTemp.size());