我的sql
public List doListForPager(HttpServletRequest request, int pageSize,
String pageFormat, Map map) {
if(map != null && "true".equals(map.get("export"))){
return baseDao.queryForList(getQuerySQL(map)[2]);
}else{
return baseDao.findAllRecordForPager(request, pageSize, getQuerySQL(map), pageFormat);
}
}
public String[] getQuerySQL(Map map) {
String sql = getWhereSQL(map);
String sql_export = "select h.*,row_number() over(order by h.year desc, h.staff_code, h.id desc) row_num from hisattend h where rownum<=10000";
String array[]={sql_export};
return array;
}
public String getWhereSQL(Map map) {
StringBuffer buffer = new StringBuffer(" where 1=1 ");
return buffer.toString();
}
action
public String doExcel() throws Exception{
map = getMap(getRequest());
map.put("export", "true");
list = historyAttendService.doListForPager(null, 0, "", map);
return SUCCESS;
}
jsp
//导出
function expData() {
var url = "<%=basePath%>attend/history/history_doExcel.action";
$("#searchForm").attr("action",url);
$("#searchForm").submit();
}
<%@ include file="/commons/page.jsp"%>
page.jsp
请问下如何分页导出 数据有20万条,我一次导出一万,第二次点导出的时候导出的还是前一万记录,请问怎么可以接着导出?
改一下分页查询的sql,比如你要导第10000到20000条记录的时候:
[code="sql"]
select *
from (select h.*,
row_number() over(order by h.year desc, h.staff_code, h.id desc) row_num
from hisattend h
where rownum <= 20000)
where row_num >= 10000
[/code]
[img][/img][img][/img][img][/img][img][/img][img][/img][img][/img][img][/img][img][/img][url][/url][url][/url][url][/url][url][/url][url][/url][url][/url][flash=200,200][/flash][flash=200,200][/flash][flash=200,200][/flash][flash=200,200][/flash][flash=200,200][/flash][flash=200,200][/flash][flash=200,200][/flash][table]
||
[/table][table]
||
[/table][table]
||
[/table][table]
||
[/table][table]
||
[/table][table]
||
[/table][table]
||
[/table][b][/b][i][/i][u][/u][quote][/quote]
[b][/b][b][/b][i][/i][i][/i][i][/i][u][/u][u][/u][u][/u][u][/u][quote][/quote][quote][/quote][quote][/quote][quote][/quote][code="java"][/code][code="java"][/code][code="java"][/code][code="java"][/code][list]
[*]
[/list][list]
[*]
[/list][list]
[*]
[/list][list]
[*]
[/list][img][/img][img][/img][img][/img][img][/img][url][/url][url][/url][url][/url][url][/url][flash=200,200][/flash][flash=200,200][/flash][flash=200,200][/flash][flash=200,200][/flash][table]
||
[/table][table]
||
[/table][table]
||
[/table][table]
||
[/table]
select h.*,row_number() over(order by h.year desc, h.staff_code, h.id desc) row_num from hisattend h where rownum>=(pageSize-1)*1000 and rownum<=pageSize*1000
pageSize不能为0
最好将每页多少条也传过来就更好了