spring mvc jfreechar注解配置及数据库访问

1.action类,使用注解配置的:

package com.t5.manage.action;
import java.awt.Font;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.chart.axis.CategoryAxis;
import org.jfree.chart.axis.ValueAxis;
import org.jfree.chart.plot.CategoryPlot;
import org.jfree.chart.plot.PlotOrientation;
import org.jfree.chart.servlet.ServletUtilities;
import org.jfree.chart.title.LegendTitle;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import com.t5.entity.Statistics;
import com.t5.entity.User;
import com.t5.manage.biz.ManagerLoginBiz;
import com.t5.manage.biz.ManagerOrderBiz;
@Controller
public class Jfreechart {
@Autowired
public ManagerOrderBiz managerOrderBiz;

@Resource
public ManagerLoginBiz manageUserService;

@RequestMapping(value = "/getMajorChart")
public ModelAndView getMajorChart(HttpServletRequest request,
HttpServletResponse response, ModelMap modelMap,String time) throws Exception{
CategoryDataset dataset = getDataSet2(time);//time参数
JFreeChart chart = ChartFactory.createBarChart3D("全年销售报表", // 图表标题
"类别", // 目录轴的显示标签
"销售额", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
//解决乱码问题
getChartByFont(chart);
String fileName = ServletUtilities.saveChartAsJPEG(chart, 700,500, null, request.getSession());
String chartURL=request.getContextPath() + "/chart?filename="+fileName;
modelMap.put("chartURL", chartURL);
return new ModelAndView("test",modelMap);
}
private void getChartByFont(JFreeChart chart) {
TextTitle textTitle = chart.getTitle();
textTitle.setFont(new Font("宋体",Font.BOLD,20));
LegendTitle legend = chart.getLegend();
if (legend!=null) {
legend.setItemFont(new Font("宋体", Font.BOLD, 20));
}
CategoryPlot plot = (CategoryPlot) chart.getPlot();
CategoryAxis axis = plot.getDomainAxis();
//设置X轴坐标上标题的文字
axis.setLabelFont(new Font("宋体",Font.BOLD,22));
//设置X轴坐标上的文字,
axis.setTickLabelFont(new Font("宋体",Font.BOLD,12));

ValueAxis valueAxis = plot.getRangeAxis();
//设置Y轴坐标上标题的文字
valueAxis.setLabelFont(new Font("宋体",Font.BOLD,12));
//设置Y轴坐标上的文字
valueAxis.setTickLabelFont(new Font("sans-serif",Font.BOLD,12));
}

/**
* 获取一个演示用的组合数据集对象
*
* @return

* time 是查询参数
*/
private CategoryDataset getDataSet2(String time) {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
List<Map<String, Object>> list=managerOrderBiz.getOrderList(time);
List<Statistics> liststa=new ArrayList<Statistics>();
System.out.println("集合数"+list.size());
for (Map<String, Object> map : list)
{
String typeName=(String) map.get("typeName").toString();//商品类型
String year=(String) map.get("year").toString(); //年
String month=(String) map.get("month").toString(); //月
Integer shoppingId=Integer.valueOf( map.get("shoppingId").toString());
Integer userId=Integer.valueOf( map.get("userId").toString());
Integer orderTypeId=Integer.valueOf((String)map.get("orderTypeId").toString());
double moneyTotal=Double.valueOf( map.get("moneyTotal").toString());
Statistics sta=new Statistics();
sta.setTypeName(typeName);
sta.setYear(year);
sta.setMonth(month);
sta.setMoneyTotal(moneyTotal);//总金额
liststa.add(sta);
}
for(Statistics tics:liststa){
dataset.addValue(tics.getMoneyTotal(), tics.getTypeName(),tics.getMonth());
}
return dataset;
}

}

2.jsp页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>jfreechart 演示 </title>

</head>

<body>
jfreechart 演示 <br>
请访问<a href="getMajorChart.do">fffff</a>
<br>
<img src="${chartURL}">
</body>
</html>

时间: 2024-10-10 12:28:30

spring mvc jfreechar注解配置及数据库访问的相关文章

Spring MVC全注解配置 - 无web.xml

Serlvet 3以后,我们可以使用注解来配置Servlet,对于像Spring这类的框架来说是一个很好的适应.Spring也对此特性加入了很多的新功能.本文就将简单的对之前的xml配置转换为java代码的配置.代码配置让程序员们觉得更加具有流程化,不像配置很多代码程序员们都不愿意look into. 接下来,进行替换我们之前的web.xml和spring-mvc.xml的配置.也就是在你的web工程里面看不到这两个配置文件了.(可能有的童鞋会说,这样配置可能对以后的修改不方便,无法达到只修改配

Spring学习记录(2) Spring MVC+Mybatis 注解配置

所有XML的配置如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springfr

spring mvc 的jpa JpaRepository数据层 访问方式汇总

spring mvc 的jpa JpaRepository数据层 访问方式汇总 博客分类: spring jpa springjpaJpaRepository 本文转载至:http://perfy315.iteye.com/blog/1460226 AppleFramework在数据访问控制层采用了Spring Data作为这一层的解决方案,下面就对Spring Data相关知识作一个较为详细的描述. 1.Spring Data所解决的问题 Spring Data :提供了一整套数据访问层(DA

spring 4 + jpa(hibernate 3/4) + spring mvc 多数据源配置

先从persistence.xml开始: <?xml version=”1.0″ encoding=”UTF-8″?><persistence version=”2.1″ xmlns=”http://java.sun.com/xml/ns/persistence” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance” xsi:schemaLocation=”http://java.sun.com/xml/ns/persistence

基于spring mvc的注解DEMO完整例子

弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件.本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,现在这一篇补上.下面开始贴代码. 文中用的框架版本:spring 3,hibernate 3,没有的,自己上网下. web.xml配置: <?xml version="1.0" encoding="UTF-8"?> 

Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍

Spring4.X + spring MVC + Mybatis3 零配置应用开发框架搭建详解(1) - 基本介绍 spring集成 mybatis Spring4.x零配置框架搭建 两年前一直在做后台的纯Java开发,很少涉及web开发这块,最近换了个纯的互联网公司,需要做Web后台管理系统,之前都是用xml配置的项目,接触了公司Spring4.x的零配置项目,觉得非常有感觉,不仅仅配置简单,而且条理清晰,所以,这里把学习的内容记录下来,一来加深对这块技术的印象,另外准备做个简单的教程,如果给

【Spring】Spring MVC原理及配置详解

1.Spring MVC概述: Spring MVC是Spring提供的一个强大而灵活的web框架.借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单.这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中. Spring MVC主要由DispatcherServlet.处理器映射.处理器(控制器).视图解析器.视图组成.他的两个核心是两个核心: 处理器映射:选择使用

java spring mvc 全注解

本人苦逼学生一枚,马上就要毕业,面临找工作,实在是不想离开学校.在老师的教导下学习了spring mvc ,配置文件实在繁琐,因此网上百度学习了spring mvc 全注解方式完成spring的装配工作; 废话不多说了上干货,其实我也没怎么理解不过简单的运行了一个spring mvc 全注解项目,也不能说是全注解,因为保留了web.xml和spring-serlvet.xml文件,(可能有的童鞋会说,这样配置可能对以后的修改不方便,无法达到只修改配置文件就切换某些环境.其实不是,零配置文件只是修

spring MVC、mybatis配置读写分离

spring MVC.mybatis配置读写分离 1.环境: 3台数据库机器,一个master,二台slave,分别为slave1,slave2 2.要实现的目标: ①使数据写入到master ②读数据时,从slave1和slave2中读取 以此来实现数据库的读写分离 3.原理: 使用MySQL驱动自带的replicationDriver来实现,replicationDriver简单来说就是存在两个Connection,一个masterConnection,一个slaveConnection: