• ORACLE 213W 行数据 生成对应的OWC的XML搞定


    ORACLE 213W 行数据 生成对应的OWC的XML
    原来采用
    RS直接返回结果集进行计数5000行写入文件,每次都出现java heap space
    对tomcat的catalina.bat文件加入
    JAVA_OPTS=-Xmx512M
    后生成文件效率提高,但生成20左右文件时还是会出现java heap space

    后采用rownum分页
     1//////这儿进行分指定行生成xml文件 
     2        
     3        int ipage=xmlfilenum; //分页单位 
     4        int allpage=0//总页数 
     5        //int pages=0; //接受的页码变量 
     6        int cpage=1//当前页 
     7        //int spage=0; //开始页 
     8        int allCol=0;
     9        //Vector v=null;
    10        String sql,pagesql,ssql2;
    11        ssql2=FileName;
    12
    13//        取总文章数 
    14                pagesql = "SELECT COUNT(*) FROM "+ssql2;
    15                //statement = conn.createStatement();
    16                rs=excuteQuery(pagesql);
    17                //pagers = statement.executeQuery(pagesql); 
    18                while(rs.next())
    19                {
    20                allCol = rs.getInt(1);
    21                System.out.println("###############总行数############<BR>");
    22                System.out.println(allCol); 
    23                System.out.println("###########################<BR>");
    24                }

    25                
    26                //获得总页面数 
    27            allpage = (int)Math.ceil((allCol + ipage-1/ ipage); 
    28             
    29        for(cpage=1;cpage<=allpage;cpage++)
    30        {        
    31            sql="select * from (select rownum no,t.* from "+ssql2 +" t where rownum<"+cpage*ipage+") where no>"+(cpage-1)*ipage;
    32            t_FileNameCount=cpage;
    33            DataOutputStream t_Output=null;
    34            t_FileName = "";
    35            t_FileName = fTmpXmlPreDir + "\\"  + FileName + "Xml\\" + FileName + "_" + t_FileNameCount + "_" + "Xml.xml";
    36            fTmpXmlFileName.add(t_FileName);//存储文件名包括路径    
    37            //fTmpXmlFileName2.add(FileName + "Xml/" + FileName + "_" + t_FileNameCount + "_" + "Xml.xml");//存储文件名不包括路径
    38            t_Output = new DataOutputStream (new BufferedOutputStream(new FileOutputStream(t_FileName)));
    39            t_Output.write(t_PreData.getBytes("UTF8"));
    40            //先在文件中将xml文档的所有头部描述 部分写入
    41            
    42            rs=excuteQuery(sql);
    43                 while(rs.next())
    44                 {
    45                    String t_aRowData = "";
    46                    forint i1=0 ; i1 < this.columnNames.length ; ++i1)
    47                    {
    48                        if (rs.getString(i1+2)!=null)//+2 跳过分页时的no字段
    49                        {
    50                            t_aRowData = t_aRowData + " Col" + i1 + "=\"" + rs.getString(i1+2) + "\"";
    51                        }

    52                    }

    53                   
    54                    //t_RowData = t_RowData + "<z:row "+ t_aRowData + " />\n";
    55                    t_aRowData = "<z:row "+ t_aRowData + " />\n";
    56                    t_Output.write(t_aRowData.getBytes("UTF8"));
    57                 }

    58            String t_WriteData = " </rs:data>\n </x:PivotCache>\n</xml>\n";
    59            t_Output.write(t_WriteData.getBytes("UTF8"));
    60            t_Output.close();//每2000行关闭文件,重新创新新文件做准备
    61            
    62            System.gc();
    63        }
      //end for allpage

    终于搞定.细节再调整中
  • 相关阅读:
    17款加速效率的CSS工具
    我为什么向后端工程师推荐Node.js
    八款开源 Android 游戏引擎 (巨好的资源)
    50个必备的实用jQuery代码段
    $.getJSON()跨域请求
    javascript獲得服務器端控件的ID
    (转)8款在线CSS优化工具/组织和压缩CSS
    10 个文件和文档的比较工具
    40个有创意的jQuery图片和内容滑动及弹出插件收藏集之四
    MBP换硬盘的过程
  • 原文地址:https://www.cnblogs.com/guola/p/568037.html
Copyright © 2020-2023  润新知