<%@ page contentType="text/html;charset=GBK"%>
<%@ page import =" java.awt.*,
java.text.SimpleDateFormat,
javax.swing.JPanel,
org.jfree.chart.ChartFactory,
org.jfree.chart.ChartPanel,
org.jfree.chart.JFreeChart,
org.jfree.chart.axis.DateAxis,
org.jfree.chart.plot.XYPlot,
org.jfree.chart.renderer.xy.XYItemRenderer,
org.jfree.chart.renderer.xy.XYLineAndShapeRenderer,
org.jfree.data.time.*,
org.jfree.data.time.TimeSeries,
org.jfree.data.time.TimeSeriesCollection,
org.jfree.data.xy.XYDataset"%>
<%@ page import="org.jfree.chart.servlet.ServletUtilities"%>
<%@ page import="java.util.*"%>
<%@ page import = "org.jfree.ui.RectangleInsets"%>
<%@ page import = "java.sql.*"%>
<jsp:directive.page import="org.jfree.chart.axis.CategoryAxis"/>
<jsp:directive.page import="org.jfree.chart.axis.ValueAxis"/>
<html>
<%
//连接数据库
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String url="jdbc:sqlserver://localhost:1433;DataBaseName=database_name";
String usr="sa";
String pwd="sa";
Connection conn=DriverManager.getConnection(url,usr,pwd);
Statement stmt=conn.createStatement();
String sql="select * from jfree order by id";
ResultSet rs=stmt.executeQuery(sql);
//设置曲线,共三条曲线
TimeSeries timeseries = new TimeSeries("平均",Minute.class);//时间的最小单位为分,线值名是“平均”
TimeSeries timeseries1 = new TimeSeries("usl",Minute.class);
TimeSeries timeseries2 = new TimeSeries("lsl",Minute.class);
//从数据库中取值,数据和时间
while(rs.next())
{
float y0=rs.getFloat("lengthavg");
float y1=rs.getFloat("lengthusl");
float y2=rs.getFloat("lengthlsl");
String s=rs.getString("addtime");
//从yyyyMMddHHmm时间格式的char中取出年月日小时分设为int值
//int x=Integer.parseInt(s.substring(0,4)); //截取年
//int y=Integer.parseInt(s.substring(5,6)); //截取月
//int z=Integer.parseInt(s.substring(6,7)); //截取日
//int a=Integer.parseInt(s.substring(8,10));
//int b=Integer.parseInt(s.substring(11,12));
int x=Integer.parseInt(s.substring(0,4)); //截取年
int y=Integer.parseInt(s.substring(5,7)); //截取月
int z=Integer.parseInt(s.substring(8,10)); //截取时间
int a=Integer.parseInt(s.substring(11,13));
int b=Integer.parseInt(s.substring(14,16));
out.print(x+"年");
out.print(y+"月");
out.print(z+"日");
out.print(a+"小时");
out.print(b+"分钟");
out.print("<br>");
timeseries.add(new Minute(b,new Hour(a,new Day(z,y,x))),y0);
timeseries1.add(new Minute(b,new Hour(a,new Day(z,y,x))),y1);
timeseries2.add(new Minute(b,new Hour(a,new Day(z,y,x))),y2);
}
//连接曲线
TimeSeriesCollection dataset = new TimeSeriesCollection();
dataset.addSeries(timeseries);
dataset.addSeries(timeseries1);
dataset.addSeries(timeseries2);
dataset.setDomainIsPointsInTime(true);
//设置曲线图
XYDataset xydataset = (XYDataset) dataset;
JFreeChart chart = ChartFactory.createTimeSeriesChart(
"走势图",
"时间",
"值",
xydataset,
true,
true,
true
);
Font font = new Font("微软雅黑",Font.CENTER_BASELINE,12);
chart.getTitle().setFont(font); //设置标题字体
chart.getLegend().setItemFont(font); //设置下标题字体
chart.setBackgroundPaint(Color.white);//设置曲线图背景色
XYPlot plot = (XYPlot) chart.getPlot();
//CategoryAxis domainaxis = plot.getDomainAxis();
ValueAxis numberaxis = plot.getRangeAxis();
//domainaxis.setTickLabelFont(font); //设置X轴坐标上和文字
//domainaxis.setLabelFont(font); //设置X轴的标题文字
//numberaxis.setTickLabelFont(font); //设置Y轴坐标上的文字
numberaxis.setLabelFont(font); //设置Y轴的标题文字
XYLineAndShapeRenderer xylineandshaperenderer = (XYLineAndShapeRenderer)plot.getRenderer();
plot.setBackgroundPaint(Color.white);//设置网格背景颜色
plot.setDomainGridlinePaint(Color.pink);//设置网格竖线颜色
plot.setRangeGridlinePaint(Color.pink);//设置网格横线颜色
plot.setAxisOffset(new RectangleInsets(0D, 0D, 0D, 10D));//设置曲线图与xy轴的距离,即曲线与xy轴贴近的距离
xylineandshaperenderer.setBaseShapesVisible(true);//设置曲线是否显示数据点
String filename = ServletUtilities.saveChartAsPNG(chart, 500, 300, null, session);
String graphURL = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;
%>
<img src="<%= graphURL %>" border=0 usemap="#<%= filename %>">
数据库表
id int,
lengthavg float,
lengthusl float,
lengthlsl float,
addtime datatime
分享到:
相关推荐
本人亲自测试过的,,绝对无BUG。。有问题可以问我
利用JFreeChart+JSP+Servlet的方式,连接数据库,实现了对后台统数据的展示,这里数据库用的是SQL server 2005.
16进销存管理系统(JSP+JavaBean+JFreeChart+SQL Server2005) 17网上淘书吧(JSP+JavaBean+SQL Server2005) 18新奥家电连锁网络系统(JSP+JavaBean+SQL Server2005) 19大学生就业求职网(JSP+JavaBean+SQL Server2005) ...
投票系统struts2.0+hibernate3.2+spring2.5+sqlserver2005数据库,+JFReeChart饼图,柱状图显示。
JNDI-index.jsp: jsp+sql2000+连接池+jfreechart-1.0.6图形控件 <br> 有关连接池配置请下载我发的 mysql+连接池+JavaBean实现用户注册登陆系统
详细的描述了JfreeChart_sql实现时间曲线图的操作方法!
jfreechart使用SqlServer2000做的饼状图,柱状图,折线图。 最近在学习jfreechart,根据网上的资料做了这3个小例子,学习用的,代码有点乱!
这是个 jsp+javabean+struts+jdbc+jfreechart 完整的java 投票系统 项目源码 可以直接导入没有eclipse、myeclipse。内附数据库文件 mysql版,也可改成其它数据库, 换对应数据库连接驱动和修改sql语法即可
这个项目只针对与初次接触JFreeChart或者想用JFreeChart制作简单的图形报表的朋友们,项目里只写了饼状图、柱状图、折线图的实现,想要具体学习JFreeChart可以参考官方文档,我也是照着官方文档写的。
Java面试题 最小函数依赖 在数据库中实现base64编码和解码 java servlet总结 java的时间操作 画Web流程图的一点心得 深入Java核心 Java内存分配原理精讲 JAVA调用存储过程详解 经典SQL语句大全 使用jfreechart + ...
用JFreeChart实现java报表开发(1) 作者:zuoxianghui 来源:blog 整理日期:2007-8-17 jfreechart,到http://www.jfree.org/下载最新的。 一、在web.xml文件中添加: <servlet-name>DisplayChart ...
项目中多次用到的jfreechart,由于需求的不确定性,所以把图表这块给单独提出来,进行一定的封装,支持动态的配置图形,好多东西都写入了XML中,支持简单的条件表达式,可以根据条件表达式进行组合的产生SQL,不依赖...
保证你能正常运行的就业信息管理系统 。sturts,hibernet,spring,jquery,jfreechart,dom4j等流行框架。
JspSmartUpload,JSP基础语法帮助,JUnit4.1_帮助文档,log4j 1.2.14,Microsoft Jet SQL参考,MySQL 5.1参考手册,MySQL使用,PostgreSQL 8.0.0 中文文档,Servlet2.3-帮助文档,Spring Security安全权限管理手册,...
applet版jfreechart简单演示 1,解压程序放到tomcat发布目录下运行,访问/jfreechartdemo/appletlib/index.jsp即可。 2,sql目录下为数据库脚本,本测试所用数据库mysql5.0 3,如果不能正常访问applet,将java...
有sql语句..swing版人力资源管理系统--JXL,JFreeChart..毕业设计
iReport 还集成了JFreeChart图 表制作包。允许用户可视化地编辑XML JasperDesign文件。用于打印的数据可以通过多种方式获取包括:JDBC, TableModels, JavaBeans, XML,Hibernate(支持HQL查询语言), CSV等。它支持多种...
运行product.sql文件还原数据库表结构 Web应用程序配置步骤: 安装MyEclipse开发工具,将product工程导入 1 修改配置文件 1.1 修改Spring配置文件 1.1.1 查找并打开prodcut/WebRoot/WEB-INF/spring-context/...
jdom.jar jfreechart-1.0.8a.jar jcommon-1.0.12.jar lucene-core-2.3.2.jar lucene-highlighter-2.4.0.jar jspsmartupload_zh_CN.jar sqljdbc.jar itextpdf-5.1.2.jar itext-xtra-5.1.2.jar 等java jar包合集