报表使用经验、技巧大总结(包括JFreechart、JS chart以及自己的使用经验)

报表使用经验、技巧大总结<?xml:namespace prefix = o /?>

 

前面我的工作中用到了报表,当时积累了一些试用心得。也触发了一些灵感。这里总结下来,希望对大家有一定帮助。

 

一、        利用基本的TABLE元素

——自己的创意之作

可以参考我先前的一篇关于TABLE制作柱状图的blog:

 

http://www.blogjava.net/JAVA-HE/archive/2007/04/20/112352.html

 

如果只是需要在页面上现实一些柱状图,那么这种方式是非常简单和实用的。核心原理利用HTML的基本元素——table。绘制table,不显示其边框,不显示其间距,然后利用获得的数据,使用JS控制哪行哪列用什么颜色。

如:

document.getElementById('tab').rows[0].cells[0].bgColor = 'red';

二、立体感的柱状图

——这是在网上陶下来的漂亮代码

  1 None.gif<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office">
  2 None.gif
  3 None.gif<!--[if !mso]>
  4 None.gif
  5 None.gif<style>
  6 None.gif
  7 None.gifv\:*         { behavior: url(#default#VML) }
  8 None.gif
  9 None.gifo\:*         { behavior: url(#default#VML) }
 10 None.gif
 11 None.gif.shape       { behavior: url(#default#VML) }
 12 None.gif
 13 None.gif</style>
 14 None.gif
 15 None.gif<![endif]-->
 16 None.gif
 17 None.gif<HEAD>
 18 None.gif
 19 None.gif<TITLE>柱状图形报表样列</TITLE>
 20 None.gif
 21 ExpandedBlockStart.gif ContractedBlock.gif<SCRIPT LANGUAGE="JavaScript"> dot.gif
 22 InBlock.gif
 23 InBlock.gif//addPole 增加一个柱状图
 24 InBlock.gif
 25 InBlock.gif//left 与窗口左边的距离
 26 InBlock.gif
 27 InBlock.gif//width  宽度
 28 InBlock.gif
 29 InBlock.gif//height 高度
 30 InBlock.gif
 31 InBlock.gif//zindex 层高度
 32 InBlock.gif
 33 InBlock.gif//fillcolor 主色
 34 InBlock.gif
 35 InBlock.gif//color 渐变色
 36 InBlock.gif
 37 InBlock.gif//type 默认为竖,1为横
 38 InBlock.gif
 39 ExpandedSubBlockStart.gif ContractedSubBlock.giffunction addPole(left,top,width,height,zindex,fillcolor,color,type) dot.gif{
 40 InBlock.gif
 41 InBlock.gif   top=top-height;
 42 InBlock.gif
 43 InBlock.gif   var a="";
 44 InBlock.gif
 45 ExpandedSubBlockStart.gif ContractedSubBlock.gif   if(type==1) dot.gif{
 46 InBlock.gif
 47 InBlock.gif      a="angle='-90' focus='100%'";
 48 InBlock.gif
 49 ExpandedSubBlockEnd.gif   }
 50 InBlock.gif
 51 InBlock.gif   var html="<v:rect style='position:absolute;";
 52 InBlock.gif
 53 InBlock.gif   html=html+"left:"+left+"px;";
 54 InBlock.gif
 55 InBlock.gif   html=html+"top:"+top+"px;";
 56 InBlock.gif
 57 InBlock.gif   html=html+"width:"+width+"px;";
 58 InBlock.gif
 59 InBlock.gif   html=html+"height:"+height+"px;";
 60 InBlock.gif
 61 InBlock.gif   html=html+"z-index:"+zindex+"'";
 62 InBlock.gif
 63 InBlock.gif   html=html+"fillcolor='"+fillcolor+"'>";
 64 InBlock.gif
 65 InBlock.gif   html=html+"<v:fill color2='"+color+"'";
 66 InBlock.gif
 67 InBlock.gif   html=html+" rotate='t' "+a+"  type='gradient'/><o:extrusion v:ext='view' backdepth='20pt' ";
 68 InBlock.gif
 69 InBlock.gif   html=html+"color='"+fillcolor+"' on='t'/></v:rect>";
 70 InBlock.gif
 71 InBlock.gif   document.write(html);
 72 InBlock.gif
 73 ExpandedSubBlockEnd.gif}
 74 InBlock.gif
 75 InBlock.gif 
 76 InBlock.gif
 77 InBlock.gif//left 与窗口左边的距离
 78 InBlock.gif
 79 InBlock.gif//width  宽度
 80 InBlock.gif
 81 InBlock.gif//height 高度
 82 InBlock.gif
 83 InBlock.gif//zindex 立体高度
 84 InBlock.gif
 85 InBlock.gif//fillcolor 主色
 86 InBlock.gif
 87 ExpandedSubBlockStart.gif ContractedSubBlock.giffunction addBackground(left,top,width,height,zindex,fillcolor) dot.gif{
 88 InBlock.gif
 89 InBlock.gif   top=top-height;
 90 InBlock.gif
 91 InBlock.gif   var html="<v:rect style='position:absolute;left:"+left+"px;";
 92 InBlock.gif
 93 InBlock.gif   html=html+"top:"+top+"px;";
 94 InBlock.gif
 95 InBlock.gif   html=html+"width:"+width+"px;";
 96 InBlock.gif
 97 InBlock.gif   html=html+"height:"+height+"px;";
 98 InBlock.gif
 99 InBlock.gif   html=html+"z-index:"+zindex+"'";
100 InBlock.gif
101 InBlock.gif   html=html+"fillcolor='"+fillcolor+"'";
102 InBlock.gif
103 InBlock.gif   html=html+" stroked='f'><v:fill rotate='t' angle='-45' focus='100%' type='gradient'/></v:rect>";
104 InBlock.gif
105 InBlock.gif   document.write(html);
106 InBlock.gif
107 ExpandedSubBlockEnd.gif}
108 InBlock.gif
109 InBlock.gif 
110 InBlock.gif
111 ExpandedSubBlockStart.gif ContractedSubBlock.giffunction addLine(zindex,from,to,color) dot.gif{
112 InBlock.gif
113 InBlock.gif       var html="<v:line style='position:absolute;left:0;text-align:left;top:0;flip:y;z-index:"+zindex+"'";
114 InBlock.gif
115 InBlock.gif       html=html+" from='"+from+"' to='"+to+"' strokecolor='"+color+"'/>"
116 InBlock.gif
117 InBlock.gif       document.write(html);
118 InBlock.gif
119 ExpandedSubBlockEnd.gif}
120 InBlock.gif
121 InBlock.gif 
122 InBlock.gif
123 ExpandedSubBlockStart.gif ContractedSubBlock.giffunction addText(left,top,width,height,zindex,value,fontsize) dot.gif{
124 InBlock.gif
125 InBlock.gif       top=top-height;
126 InBlock.gif
127 InBlock.gif   var html="<v:shape style='position:absolute;left:"+left+"px;";
128 InBlock.gif
129 InBlock.gif   html=html+"top:"+top+"px;";
130 InBlock.gif
131 InBlock.gif   html=html+"width:"+width+"px;";
132 InBlock.gif
133 InBlock.gif   html=html+"height:"+height+"px;";
134 InBlock.gif
135 InBlock.gif   html=html+"z-index:"+zindex+"'>";
136 InBlock.gif
137 InBlock.gif   html=html+"<v:textbox inset='0px,0px,0px,0px'><table cellspacing='3' cellpadding='0' width='100%' height='100%'><tr><td";
138 InBlock.gif
139 InBlock.gif   html=html+" style='FONT-SIZE:"+fontsize+"' align='center'>"+value+"</td></tr></table></v:textbox></v:shape>";
140 InBlock.gif
141 InBlock.gif   document.write(html);
142 InBlock.gif
143 ExpandedSubBlockEnd.gif}
144 InBlock.gif
145 InBlock.gif 
146 InBlock.gif
147 ExpandedSubBlockStart.gif ContractedSubBlock.giffunction addGround(left,top,width,height,zindex,fillcolor,linecolor1,linecolor2,offset,level,min,leftoffset,textwidth,textheight,fontsize) dot.gif{
148 InBlock.gif
149 InBlock.gif   addBackground(left,top,width,height,zindex,fillcolor);
150 InBlock.gif
151 InBlock.gif   addLine(zindex,left+"px,"+top+"px",((left-0)+(width-0))+"px,"+top+"px",linecolor1);
152 InBlock.gif
153 InBlock.gif   addLine(zindex,left+"px,"+top+"px",left+"px,"+(top-height)+"px",linecolor1);
154 InBlock.gif
155 InBlock.gif   addLine(zindex,((left-0)+(offset-0))+"px,"+(top-offset)+"px",((left-0)+(width-0))+"px,"+(top-offset)+"px",linecolor2);
156 InBlock.gif
157 InBlock.gif   addLine(zindex,((left-0)+(offset-0))+"px,"+(top-offset)+"px",((left-0)+(offset-0))+"px,"+(top-height)+"px",linecolor2);
158 InBlock.gif
159 InBlock.gif   addLine(zindex,left+"px,"+(top-offset)+"px",((left-0)+(offset-0))+"px,"+top+"px",linecolor2);
160 InBlock.gif
161 ExpandedSubBlockStart.gif ContractedSubBlock.gif   for(var i=1;i<level;i++) dot.gif{
162 InBlock.gif
163 InBlock.gif      addLine(zindex,left+"px,"+(top-offset-(height*i)/level)+"px",((left-0)+(offset-0))+"px,"+(top-(height*i)/level)+"px",linecolor2);
164 InBlock.gif
165 InBlock.gif         addLine(zindex,(left-leftoffset)+"px,"+(top-(height*i)/level)+"px",left+"px,"+(top-(height*i)/level)+"px",linecolor1);
166 InBlock.gif
167 InBlock.gif      addText(left-textwidth,(top-(height*i)/level)+(textheight-0)+2,textwidth,textheight,"-1",i*min,fontsize)
168 InBlock.gif
169 InBlock.gif         addLine(zindex,((left-0)+(offset-0))+"px,"+(top-offset-(height*i)/level)+"px",((left-0)+(width-0))+"px,"+(top-offset-(height*i)/level)+"px",linecolor2);
170 InBlock.gif
171 ExpandedSubBlockEnd.gif   }
172 InBlock.gif
173 InBlock.gif   addLine(zindex,(left-leftoffset)+"px,"+(top-(height*level)/level)+"px",left+"px,"+(top-(height*level)/level)+"px",linecolor1);
174 InBlock.gif
175 InBlock.gif   addText(left-textwidth,(top-(height*level)/level)+(textheight-0)+2,textwidth,textheight,"-1",level*min,fontsize)
176 InBlock.gif
177 ExpandedSubBlockEnd.gif}
178 InBlock.gif
179 InBlock.gif 
180 InBlock.gif
181 ExpandedSubBlockStart.gif ContractedSubBlock.giffunction addEPole(left,top,width,height,zindex,fillcolor,color,textwidth,textheight,value1,value2,fontsize) dot.gif{
182 InBlock.gif
183 InBlock.gif       addText(left-textwidth/2+width/2,top-height-10,textwidth,textheight,zindex,value1,fontsize);
184 InBlock.gif
185 InBlock.gif       addText(left-textwidth/2+width/2,(top-0)+(textheight-0),textwidth,textheight,zindex,value2,fontsize);
186 InBlock.gif
187 InBlock.gif       addPole(left,top,width,height,zindex,fillcolor,color)
188 InBlock.gif
189 ExpandedSubBlockEnd.gif}
190 ExpandedBlockEnd.gif
191 None.gif</SCRIPT>
192 None.gif
193 None.gif</HEAD>
194 None.gif
195 None.gif 
196 None.gif
197 None.gif<BODY>
198 None.gif
199 None.gif<div>
200 None.gif
201 ExpandedBlockStart.gif ContractedBlock.gif<SCRIPT LANGUAGE="JavaScript"> dot.gif
202 InBlock.gif
203 InBlock.gif<!--
204 InBlock.gif
205 InBlock.gif 
206 InBlock.gif
207 InBlock.gifaddEPole("180","400","30","150","1","#3300FF","#66FFFF","80","18","300","1月份","9pt");
208 InBlock.gif
209 InBlock.gifaddEPole("230","400","30","300","1","#FF0000","#99FFFF","80","18","600","2月份","9pt");
210 InBlock.gif
211 InBlock.gifaddEPole("280","400","30","200","1","#33CC00","#99FFFF","80","18","400","3月份","9pt");
212 InBlock.gif
213 InBlock.gifaddEPole("330","400","30","100","1","#FF0099","#99FFFF","80","18","200","4月份","9pt");
214 InBlock.gif
215 InBlock.gifaddEPole("380","400","30","50","1","#660000","#99FFFF","80","18","100","5月份","9pt");
216 InBlock.gif
217 InBlock.gifaddEPole("430","400","30","20","1","#FFFF00","#99FFFF","80","18","40","6月份","9pt");
218 InBlock.gif
219 InBlock.gifaddEPole("480","400","30","180","1","#330066","#99FFFF","80","18","360","7月份","9pt");
220 InBlock.gif
221 InBlock.gifaddEPole("530","400","30","120","1","#CC6633","#99FFFF","80","18","240","8月份","9pt");
222 InBlock.gif
223 InBlock.gifaddEPole("580","400","30","80","1","#9933FF","#99FFFF","80","18","160","9月份","9pt");
224 InBlock.gif
225 InBlock.gifaddGround("160","400","460","300","-1","#33CCFF","#000000","#6699CC","10","6","100","20","40","18","9pt")
226 InBlock.gif
227 InBlock.gif//-->
228 ExpandedBlockEnd.gif
229 None.gif</SCRIPT>
230 None.gif
231 None.gif</div>
232 None.gif
233 None.gif</body>
234 None.gif
235 None.gif</html>
236 None.gif

 

 

效果图如下:
<?xml:namespace prefix = v /?><shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"><lock v:ext="edit" aspectratio="t"><br></lock></shapetype>

是不是很漂亮呢?我是觉得很漂亮。

其中方法调用,想知道每个参数的详细信息,你可以自己试:

addEPole("580","400","30","80","1","#9933FF","#99FFFF","80","18","160","9月份","<?xml:namespace prefix = st1 /?><chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="9" unitname="pt" w:st="on">9pt</chmetcnv>");

参数含义包括上边距离,左边距,以及高宽,以及XY上的内容 。以及颜色,柱体的宽度等等信息。

addGround("160","400","460","300","-1","#33CCFF","#000000","#6699CC","10","6","100","20","40","18","<chmetcnv tcsc="0" numbertype="1" negative="False" hasspace="False" sourcevalue="9" unitname="pt" w:st="on">9pt</chmetcnv>")

定义了范围大小以及6个刻度,每个100,还包括字体大小,刻度线颜色,以及内部线条颜色,以及渐变色等等含义。

 

三、JFreechart使用

 

注意生成图都自动存在临时文件夹里的。

 

总结过上手资料文章:

http://www.blogjava.net/JAVA-HE/archive/<chsdate w:st="on" year="2007" month="4" day="18" islunardate="False" isrocdate="False">2007/04/18</chsdate>/111439.html

但是朋友反映总结得过于粗浅。

 

这里写详细点:

1.       柱状图

 1 None.gifDefaultCategoryDataset dataset = new DefaultCategoryDataset ();
 2 None.gif
 3 None.gif    dataset.addValue (300, "广州", "苹果");
 4 None.gif
 5 None.gif    dataset.addValue (200, "广州", "梨子");
 6 None.gif
 7 None.gif    dataset.addValue (600, "广州", "葡萄");
 8 None.gif
 9 None.gif    dataset.addValue (340, "广州", "芒果");
10 None.gif
11 None.gif    dataset.addValue (280, "广州", "荔枝");
12 None.gif
13 None.gif    JFreeChart chart = ChartFactory.createBarChart3D ("水果销量统计图","水果","销量",
14 None.gif
15 None.gif            dataset,PlotOrientation.VERTICAL, //选择水平或者垂直放
16 None.gif
17 None.gif            false,//是否显示颜色类别(地区)提示
18 None.gif
19 None.gif            false,
20 None.gif
21 None.gif            false);
22 None.gif
23 None.gif    String filename = ServletUtilities.saveChartAsPNG (chart, 500, 300, null, session);
24 None.gif
25 None.gif    String graphURL = request.getContextPath () + "/servlet/DisplayChart?filename=" + filename;
26 None.gif
27 None.gif

 

2.       饼图

 1 None.gifDefaultPieDataset data = new DefaultPieDataset();
 2 None.gif
 3 None.gif    data.setValue("六月", 500);
 4 None.gif
 5 None.gif    data.setValue("七月", 580);
 6 None.gif
 7 None.gif    data.setValue("八月", 828);
 8 None.gif
 9 None.gif    PiePlot plot = new PiePlot(data);
10 None.gif
11 None.gif    JFreeChart chart = new JFreeChart("", JFreeChart.DEFAULT_TITLE_FONT, plot, true);
12 None.gif
13 None.gif    chart.setBackgroundPaint(java.awt.Color.white);  //可选,设置图片背景色
14 None.gif
15 None.gif    chart.setTitle("Welcome to Jfreechart !"); //可选,设置图片标题
16 None.gif
17 None.gif    ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
18 None.gif
19 None.gif    //500是图片长度,300是图片高度
20 None.gif
21 None.gif    String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, info, session);
22 None.gif
23 None.gifString graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
24 None.gif
25 None.gif 
26 None.gif
27 None.gif在插入图片的地方:
28 None.gif
29 None.gif<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#<%= filename %>">
30 None.gif
31 None.gif 
32 None.gif
33 None.gif在xml中加入了:
34 None.gif
35 None.gif<servlet>
36 None.gif
37 None.gif               <servlet-name>DisplayChart</servlet-name>
38 None.gif
39 None.gif               <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>
40 None.gif
41 None.gif    </servlet>
42 None.gif
43 None.gif    <servlet-mapping>
44 None.gif
45 None.gif               <servlet-name>DisplayChart</servlet-name>
46 None.gif
47 None.gif               <url-pattern>/servlet/DisplayChart</url-pattern>
48 None.gif
49 None.gif    </servlet-mapping>
50 None.gif
51 None.gif图片效果,请访问:http://www.blogjava.net/JAVA-HE/archive/2007/04/18/111439.html
52 None.gif
53 None.gif还可以如下创建 dataset对象:
54 None.gif
55 ExpandedBlockStart.gif ContractedBlock.gifdouble[][] data = new double[][]  dot.gif{ dot.gif{672, 766, 223, 540, 126},  dot.gif{325, 521, 210, 340, 106},  dot.gif{332, 256, 523, 240, 526} };
56 None.gif
57 ExpandedBlockStart.gif ContractedBlock.gif   String[] rowKeys =  dot.gif{"苹果","梨子","葡萄"};
58 None.gif
59 ExpandedBlockStart.gif ContractedBlock.gif   String[] columnKeys =  dot.gif{"北京","上海","广州","成都","深圳"};
60 None.gif
61 None.gifCategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);
62 None.gif
63 None.gif

效果:

<shape id="_x0000_i1027" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5Cjava-he%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image003.png" o:title=""></imagedata></shape>

 

参照网上介绍的一些文章总是发现不能向我的这么顺利,不是说他们的有错。我想版本不一样了 。区别肯定是有的。

实际上建立什么样的图表,ChartFactory可以选择不同方法建立不同图表的。

比如直接讲原来一个柱状图,中改了一个方法,图就变了。

如:

 

 1 None.gifJFreeChart chart = ChartFactory.createLineChart ("水果销量统计图","水果","销量",
 2 None.gif
 3 None.gif            dataset,PlotOrientation.VERTICAL,//选择水平或者垂直放
 4 None.gif
 5 None.gif            true,//广州或者成都,这里颜色有区别的。(颜色类别)
 6 None.gif
 7 None.gif            true,
 8 None.gif
 9 None.gif            true);
10 None.gif
11 None.gif

对比两幅图。只是方法名字不同。


<shape id="_x0000_i1026" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5Cjava-he%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image007.png" o:title=""><div align="center" src_cetemp="/images/blogjava_net/java-he/j4.PNG"> <img height="302" alt="" src="http://www.blogjava.net/images/blogjava_net/java-he/j4.PNG" width="511" border="0"> </div> </imagedata></shape>

 

再来个3D的:(createLineChart3D方法)

<shape id="_x0000_i1029" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5Cjava-he%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image009.png" o:title=""></imagedata></shape>

而作为createAreaChart建立的面积比例图:

需要注意点的是,数据先后对图像效果是有影响的。因为有覆盖存在。

<shape id="_x0000_i1030" type="#_x0000_t75"><imagedata src="file:///C:%5CDOCUME~1%5Cjava-he%5CLOCALS~1%5CTemp%5Cmsohtml1%5C01%5Cclip_image011.png" o:title=""></imagedata></shape>

 

补充一个让大家都晕的,我居然一直一位JFreechart 和CEWOLG是一个东西。所以总在那里找标签。还以为我下载的版本不同,所以那些东西都找不到呢!

 

四、结合cewolf使用 

 

实际上大量应用的是线图:

经典应用,无非是读取数据库,然后根据数据库中的值来生成线图。

 

生成线图的JSP:

  1 None.gif
  2 None.gif
  3 None.gif<%@page pageEncoding="UTF-8"%>
  4 None.gif
  5 None.gif<%@page import="java.sql.*"%>
  6 None.gif
  7 None.gif<%@page import="java.util.*"%>
  8 None.gif
  9 None.gif<%@page import="de.laures.cewolf.*"%>
 10 None.gif
 11 None.gif<%@page import="de.laures.cewolf.tooltips.*"%>
 12 None.gif
 13 None.gif<%@page import="de.laures.cewolf.links.*"%>
 14 None.gif
 15 None.gif<%@page import="org.jfree.data.*"%>
 16 None.gif
 17 None.gif<%@page import="org.jfree.data.time.*"%>
 18 None.gif
 19 None.gif<%@page import="org.jfree.data.gantt.*"%>
 20 None.gif
 21 None.gif<%@page import="org.jfree.chart.*"%>
 22 None.gif
 23 None.gif<%@page import="org.jfree.chart.plot.*"%>
 24 None.gif
 25 None.gif<%@page import="org.jfree.data.category.*"%>
 26 None.gif
 27 None.gif<%@page import="org.jfree.data.general.*"%>
 28 None.gif
 29 None.gif<%@page import="org.jfree.data.xy.*"%>
 30 None.gif
 31 None.gif<%@page import="java.awt.*" %>
 32 None.gif
 33 None.gif<%@page import="de.laures.cewolf.taglib.CewolfChartFactory" %>
 34 None.gif
 35 None.gif<%@page import="org.jfree.chart.event.ChartProgressListener" %>
 36 None.gif
 37 None.gif<%@page import="org.jfree.chart.event.ChartProgressEvent" %>
 38 None.gif
 39 None.gif<%@page import="com.palmtech.util.*" %>
 40 None.gif
 41 None.gif<%@page import="com.palmtech.sqldata.*" %>
 42 None.gif
 43 None.gif<%
 44 None.gif
 45 None.giffinal int round=roleInfo.round;//获取游戏轮数
 46 None.gif
 47 None.gifint[][] loanDataTemp=new int[round][2];
 48 None.gif
 49 None.gifconn = null;
 50 None.gif
 51 None.gifresult = new Vector ();
 52 None.gif
 53 None.gifps = null;
 54 None.gif
 55 None.giftry
 56 None.gif
 57 ExpandedBlockStart.gif ContractedBlock.gif dot.gif{
 58 InBlock.gif
 59 InBlock.gif    conn = DriverManager.getConnection ("proxool.BreadServer");
 60 InBlock.gif
 61 InBlock.gif    ps = conn.prepareStatement ("CALL proc_graph_role_fee(?,?,?)");
 62 InBlock.gif
 63 InBlock.gif    ps.setInt (1,gameID);
 64 InBlock.gif
 65 InBlock.gif    ps.setInt (2,roleID);
 66 InBlock.gif
 67 InBlock.gif    ps.setInt (3,2);
 68 InBlock.gif
 69 InBlock.gif    ResultSet rs = ps.executeQuery ();
 70 InBlock.gif
 71 InBlock.gif    for(int histroyRound=0;histroyRound<round;histroyRound++)
 72 InBlock.gif
 73 ExpandedSubBlockStart.gif ContractedSubBlock.gif     dot.gif{
 74 InBlock.gif
 75 InBlock.gif        rs.absolute (histroyRound+1);//游标从1开始
 76 InBlock.gif
 77 InBlock.gif        for(int i=0;i<2;i++)
 78 InBlock.gif
 79 ExpandedSubBlockStart.gif ContractedSubBlock.gif         dot.gif{
 80 InBlock.gif
 81 InBlock.gif            
 82 InBlock.gif
 83 InBlock.gif            loanDataTemp[histroyRound][i]=rs.getInt (2+i);
 84 InBlock.gif
 85 InBlock.gif           //out.print (loanDataTemp[histroyRound][i]+" ");
 86 InBlock.gif
 87 ExpandedSubBlockEnd.gif        }
 88 InBlock.gif
 89 InBlock.gif        //out.println ("<br>");
 90 InBlock.gif
 91 ExpandedSubBlockEnd.gif    }
 92 InBlock.gif
 93 InBlock.gif    rs.close ();
 94 InBlock.gif
 95 InBlock.gif    ps.close ();
 96 InBlock.gif
 97 InBlock.gif    ps = null;
 98 InBlock.gif
 99 ExpandedBlockEnd.gif}
100 None.gif
101 None.gifcatch (Exception ex)
102 None.gif
103 ExpandedBlockStart.gif ContractedBlock.gif dot.gif{
104 InBlock.gif
105 InBlock.gif    ex.printStackTrace ();
106 InBlock.gif
107 InBlock.gif    result = new Vector ();
108 InBlock.gif
109 ExpandedBlockEnd.gif}
110 None.gif
111 None.giffinally
112 None.gif
113 ExpandedBlockStart.gif ContractedBlock.gif dot.gif{
114 InBlock.gif
115 InBlock.gif    if(ps!=null)
116 InBlock.gif
117 ExpandedSubBlockStart.gif ContractedSubBlock.gif     dot.gif{try
118 InBlock.gif
119 ExpandedSubBlockStart.gif ContractedSubBlock.gif      dot.gif{ps.close ();}
120 InBlock.gif
121 InBlock.gif     catch(Exception e)
122 InBlock.gif
123 ExpandedSubBlockStart.gif ContractedSubBlock.gif      dot.gif{}ps=null;}
124 InBlock.gif
125 InBlock.gif    try
126 InBlock.gif
127 html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值