Jfreechart关联数据库生成时间曲线图

<%
/**
 * 这个页面主要用于显示某个气站某个日期内的温度曲线图
 * time:2005-04-18
 * @author:伊扬
 * @version 1.0
 */
%>
<%@ page contentType="text/html;charset=GBK"%>
<%@ page import = "java.awt.Color,
                    java.awt.Font,
                    java.io.*,
                    java.sql.*,
                    java.sql.ResultSet,
                    java.sql.ResultSetMetaData,
                    java.util.ArrayList,
                    java.util.*,
                    org.jfree.chart.ChartFactory,
                    org.jfree.chart.ChartPanel,
                    org.jfree.chart.JFreeChart,
                    org.jfree.chart.servlet.ServletUtilities,
                    org.jfree.chart.*,
                    org.jfree.chart.axis.AxisSpace,
                    org.jfree.chart.StandardLegend,
                    org.jfree.chart.axis.DateAxis,
                    org.jfree.chart.plot.XYPlot,
                    org.jfree.chart.renderer.StandardXYItemRenderer,
                    org.jfree.chart.renderer.XYItemRenderer,
                    org.jfree.data.XYDataset,
                    org.jfree.data.time.Hour,
                    org.jfree.data.time.Minute,
                    org.jfree.data.time.Day,
                    org.jfree.data.time.TimeSeries,
                    org.jfree.data.time.TimeSeriesCollection"
%>
<%
String WellId=request.getParameter("WellID");//取需要查询的井号
String Transtime=request.getParameter("Transtime");//取需要查询的日期
String Para=request.getParameter("Para");//取需要查询的参数
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mis";//mis是数据库名称
String user="sa";//用户名
String password="";//用户密码
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
int i=0;
int j=0;
double[] row=new double[144];
Day days=new Day();//生成一个日子以产生当日的24个小时
       TimeSeries s1 = new TimeSeries("输气站"+WellId+" "+Transtime+""+Para, Minute.class);
for (j=0;j<24;j++){//分别对每个小时进行数据取值,每小时取6个
     int m=0;
     String sql="SELECT "+Para+" , Transtime FROM Trans_Gas WHERE (CONVERT(varchar(10), Transtime, 20) = '"+Transtime+"') AND (WellId = '"+WellId+"')"+
                " and ({ fn HOUR(Transtime) } ="+j+")";
     ResultSet rs=stmt.executeQuery(sql);
     while (rs.next()&& m<6){
     row[6*j+m]=rs.getDouble(1);
     rs.next();
     i++;
     m++;
     }
     if (m<6){//如果这个小时内没有6个值,则填0
       for (int k=m;k<6;k++){
       row[6*j+k]=0;
       }
     }
      Hour hour=new Hour(j,days);
      s1.add(new Minute(0, hour), row[6*j]);
      s1.add(new Minute(10, hour), row[6*j+1]);
      s1.add(new Minute(20, hour), row[6*j+2]);
      s1.add(new Minute(30, hour), row[6*j+3]);
      s1.add(new Minute(40, hour), row[6*j+4]);
      s1.add(new Minute(50, hour), row[6*j+5]);
}     TimeSeriesCollection dataset = new TimeSeriesCollection();
      dataset.addSeries(s1);

       dataset.setDomainIsPointsInTime(true);
JFreeChart chart = ChartFactory.createTimeSeriesChart(
           "输气站"+WellId+" "+Transtime+""+Para+"走势图",
           "时间",Para+"值",
           dataset,
           true,
           true,
           false
       );

       //chart.setBackgroundPaint(Color.white);

       StandardLegend sl = (StandardLegend) chart.getLegend();
       sl.setDisplaySeriesShapes(true);

       XYPlot plot = chart.getXYPlot();
       plot.setBackgroundPaint(new Color(136,189,193));//设置背景颜色
       plot.setDomainGridlinePaint(Color.white);//设置网格竖线颜色
       plot.setRangeGridlinePaint(Color.white);//设置网格横线颜色
       //plot.setDomainTickBandPaint(new Color(33,66,99));//设置隔段块颜色
       //plot.setFixedDomainAxisSpace(new AxisSpace());//填充固定轴空白
       XYItemRenderer renderer = plot.getRenderer();
       if (renderer instanceof StandardXYItemRenderer) {
           StandardXYItemRenderer rr = (StandardXYItemRenderer) renderer;
           rr.setPlotShapes(true);//true为每一个值画一个小方块
           rr.setShapesFilled(true);//true表示填充每个小方块
       }

       DateAxis axis = (DateAxis) plot.getDomainAxis();

String filename = ServletUtilities.saveChartAsPNG(chart,1024, 600, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" width=1024 height=600 border=0 usemap="#<%= filename %>">

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值