function expContent(){
var errmsg = "";
var fields = "会员名,真实姓名,播放机品牌,播放机型号,下单时间,受理时间,发货时间,到货时间,订单号,订单状态,订单总额,物流编号,产品费用,硬盘费用,运费,分发中心,收货地址,收货人,备注"; var con = "<%=con%>";con是过滤条件
var filename = "order_report_qry.csv";
if(errmsg!=""){
alert(errmsg);
}else{
form1.action = "order_export.jsp?con="+con+"&fields="+fields+"&filename="+filename;
form1.submit();
form1.action = "order_report_qry1.jsp";
return true;
}
}在order_export.jsp中调用StringBuffer csvFileContent = new CsvFileParser().csvUserExport1(con,con1, fileds);方法csvUserExport1(con,con1, fileds);方法如下
public StringBuffer csvUserExport1(String con,String con1, String fileHead)throws Exception{
String querySQL ="select u.user_name,"
+ "u.real_name,"
+ "(select player_brand from registcard r where u.registcardid = r.registcardid) as player_brand,"
+ "(select player_type from player_type_tab where player_type_id = (select player_type_id from registcard r where u.registcardid = r.registcardid )) as player_type,"
+ "o.create_time,"
+ "o.Process_date,"
+ "c.consign_date,"
+ "r.signed_date,"
+ "o.order_no,"
+ "(case o.order_status when 0 then '待受理' when 1 then '已受理' when 2 then '已撤单' when 3 then '已完单' when 4 then '已发货' when 5 then '已到货' end) as order_status,"
+ "o.should_amount,"
+ "c.delivery_no,"
+ "o.content_fee,"
+ "o.hd_amount,"
+ "o.deal_fee,"
+ "(select center_name from dist_center_city d right join user_tab u2 on d.dist_id=u2.dist_id where o.user_id = u2.user_id) as center_name,"
+ "a.rev_address,"
+ "a.receiver,"
+ "o.re "
+ "from order_tab o "
+ "left join user_tab u on o.user_id = u.user_id "
+ "left join address_tab a on o.address_id = a.address_id "
+ "left join consign_tab c on o.order_id = c.order_id "
+ "left join receipt_tab r on o.order_id = r.order_id "
+ ",dist_center_city d where d.dist_id=u.dist_id and o.user_id = u.user_id "
+ con+ " order by o.create_time desc";
// 判断sql
if(querySQL.indexOf("*", 0) != -1){
//pw.println("查询字段不合法!");
//导入csv文件数据不合法异常
throw new Exception("查询字段不合法!");
} //获取连接
DBConn dbcon = null;
//业务数据
StringBuffer finalData = new StringBuffer();
//添加文件头
finalData.append(fileHead);
finalData.append("\r\n");
try {
//初始化
dbcon = UseDB.getConn();
//迭代数据
Vector<String[]> result = dbcon.executeQuery(querySQL);
for(int j = 0; j < result.size(); j ++){
//设置第一次标识
boolean isOutterFirstFlag = true;
//取数据
String[] resultArray = (String[])result.get(j);
for(int i = 0; i < resultArray.length; i ++){
if(isOutterFirstFlag){
finalData.append(resultArray[i]);
isOutterFirstFlag = false;
}else{
finalData.append(",");
finalData.append(resultArray[i]);
}
}
finalData.append("\r\n");
}
} catch (Exception e) {
try {
pw.println("csvFileExport:" + e.getMessage());
}catch(Exception e1){}
}finally{
try{
if(dbcon != null){
dbcon.close();
}
}catch(Exception ex){
pw.println("close database exception!");
}
}
return finalData;
}
发现查询字段var fields = "会员名,真实姓名,播放机品牌,播放机型号,下单时间,受理时间,发货时间,到货时间,订单号,订单状态,订单总额,物流编号,产品费用,硬盘费用,运费,分发中心,收货地址,收货人,备注";
的数量减少时就不会内存溢出了。例如 var fields = "会员名,真实姓名,播放机品牌,播放机型号,下单时间,受理时间,发货时间,到货时间,订单号“就不会内存溢出了,怎么解决啊?需求要求字段不能减少
var errmsg = "";
var fields = "会员名,真实姓名,播放机品牌,播放机型号,下单时间,受理时间,发货时间,到货时间,订单号,订单状态,订单总额,物流编号,产品费用,硬盘费用,运费,分发中心,收货地址,收货人,备注"; var con = "<%=con%>";con是过滤条件
var filename = "order_report_qry.csv";
if(errmsg!=""){
alert(errmsg);
}else{
form1.action = "order_export.jsp?con="+con+"&fields="+fields+"&filename="+filename;
form1.submit();
form1.action = "order_report_qry1.jsp";
return true;
}
}在order_export.jsp中调用StringBuffer csvFileContent = new CsvFileParser().csvUserExport1(con,con1, fileds);方法csvUserExport1(con,con1, fileds);方法如下
public StringBuffer csvUserExport1(String con,String con1, String fileHead)throws Exception{
String querySQL ="select u.user_name,"
+ "u.real_name,"
+ "(select player_brand from registcard r where u.registcardid = r.registcardid) as player_brand,"
+ "(select player_type from player_type_tab where player_type_id = (select player_type_id from registcard r where u.registcardid = r.registcardid )) as player_type,"
+ "o.create_time,"
+ "o.Process_date,"
+ "c.consign_date,"
+ "r.signed_date,"
+ "o.order_no,"
+ "(case o.order_status when 0 then '待受理' when 1 then '已受理' when 2 then '已撤单' when 3 then '已完单' when 4 then '已发货' when 5 then '已到货' end) as order_status,"
+ "o.should_amount,"
+ "c.delivery_no,"
+ "o.content_fee,"
+ "o.hd_amount,"
+ "o.deal_fee,"
+ "(select center_name from dist_center_city d right join user_tab u2 on d.dist_id=u2.dist_id where o.user_id = u2.user_id) as center_name,"
+ "a.rev_address,"
+ "a.receiver,"
+ "o.re "
+ "from order_tab o "
+ "left join user_tab u on o.user_id = u.user_id "
+ "left join address_tab a on o.address_id = a.address_id "
+ "left join consign_tab c on o.order_id = c.order_id "
+ "left join receipt_tab r on o.order_id = r.order_id "
+ ",dist_center_city d where d.dist_id=u.dist_id and o.user_id = u.user_id "
+ con+ " order by o.create_time desc";
// 判断sql
if(querySQL.indexOf("*", 0) != -1){
//pw.println("查询字段不合法!");
//导入csv文件数据不合法异常
throw new Exception("查询字段不合法!");
} //获取连接
DBConn dbcon = null;
//业务数据
StringBuffer finalData = new StringBuffer();
//添加文件头
finalData.append(fileHead);
finalData.append("\r\n");
try {
//初始化
dbcon = UseDB.getConn();
//迭代数据
Vector<String[]> result = dbcon.executeQuery(querySQL);
for(int j = 0; j < result.size(); j ++){
//设置第一次标识
boolean isOutterFirstFlag = true;
//取数据
String[] resultArray = (String[])result.get(j);
for(int i = 0; i < resultArray.length; i ++){
if(isOutterFirstFlag){
finalData.append(resultArray[i]);
isOutterFirstFlag = false;
}else{
finalData.append(",");
finalData.append(resultArray[i]);
}
}
finalData.append("\r\n");
}
} catch (Exception e) {
try {
pw.println("csvFileExport:" + e.getMessage());
}catch(Exception e1){}
}finally{
try{
if(dbcon != null){
dbcon.close();
}
}catch(Exception ex){
pw.println("close database exception!");
}
}
return finalData;
}
发现查询字段var fields = "会员名,真实姓名,播放机品牌,播放机型号,下单时间,受理时间,发货时间,到货时间,订单号,订单状态,订单总额,物流编号,产品费用,硬盘费用,运费,分发中心,收货地址,收货人,备注";
的数量减少时就不会内存溢出了。例如 var fields = "会员名,真实姓名,播放机品牌,播放机型号,下单时间,受理时间,发货时间,到货时间,订单号“就不会内存溢出了,怎么解决啊?需求要求字段不能减少
解决方案 »
- 如果用了struts2框架,那么之前一些与web相关联的东东怎么办~各位?
- Spring+Struts+Hibernate开发,如何防止用户绕开登陆直接访问JSP网页
- 多文件上传的 问题 String index out of range: -1在线等!
- 请教弹出路径选择窗口的解决方案!
- [求助] 3个Struts相关的小问题 大家快来帮忙啊,急!
- 一个关于将java文件编译成class文件的问题(急问)
- JSP在IE中运行问题吗?
- 请问利用APPLET能不能写一个在浏览器上提供FTP功能的程序
- 现在的网站应用中,jsp一般流行是用什么服务器?
- 初学struts2 在登录页面填写完成后 出现 Exception occurred during processing request: null
- 搜索引擎区没人了。tomcat启动solr报错。
- 原来正确的工程改了工程名和相应的servlet路径就报错了求解
一条代码即可搞定
writer.writeAll(rs, true);