📄 barchartdemo.java
字号:
package pmsys.wyj;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.apache.struts.actions.DispatchAction;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.sql.DataSource;
import java.sql.DriverManager;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.PreparedStatement;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.io.*;
import org.jfree.data.*;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;
import org.jfree.data.category.*;
import pmsys.*;
import pmsys.wyj.*;
/**
* 该类用于演示最简单的柱状图生成
* @author Winter Lau
*/
public class BarChartDemo extends DispatchAction {
//找出数据--职称
public ActionForward tj_picture_zhicheng(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
ArrayList dlist1[] = new ArrayList[8];
for (int i = 0; i < 8; i++) {
dlist1[i] = new ArrayList();
}
DynaActionForm dyform = (DynaActionForm) form;
String tjdept = (String) dyform.get("tjdept");
Connection conn = null;
Statement stmt = null;
try{
DataSource ds = (DataSource)this.getDataSource(request,"oracledb");
conn = ds.getConnection();
//查找数据库中全部职称类型的记录
String sql = "SELECT * FROM zhichengs";
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
int k = 0;
int n = 0;
int h = 0;
String n1 = "";
for(int i = 0;rs.next(); i++){
int zhicheng_id = rs.getInt("zhicheng_id");
n = 0;
h = 0;
n1 = "";
//查找数据库中匹配职称类型的记录
String sql2 = "SELECT * FROM employees e,emp_zhich ez WHERE e.emp_id=ez.emp_id AND ez.zhicheng_id=? AND e.dep_dep_id=?";
PreparedStatement pstmt = conn.prepareStatement(sql2);
pstmt.setInt(1,zhicheng_id);
pstmt.setString(2,tjdept);
ResultSet rs2 = pstmt.executeQuery();
while(rs2.next()){
UserForm dept1 = new UserForm();
dept1.setDeptno(rs2.getInt("emp_id")+"");
dept1.setDname(rs2.getString("emp_name"));
dlist1[i].add(dept1);
n++;
k++;
}
n1 = n + "";
ArrayList dlist2 = new ArrayList();
UserForm dept3 = new UserForm();
dept3.setDeptno(n1);
dlist2.add(dept3);
//request.setAttribute("j" + i,dlist2);
request.setAttribute("j" + i,n1);
String dept = "dept" + i;
request.setAttribute(dept,dlist1[i]);
//查找全厂该职称总数
String sql4 = "SELECT * FROM employees e,emp_zhich ez WHERE e.emp_id=ez.emp_id AND ez.zhicheng_id=?";
PreparedStatement pstmt4 = conn.prepareStatement(sql4);
pstmt4.setInt(1,zhicheng_id);
ResultSet rs4 = pstmt4.executeQuery();
while(rs4.next()){
h++;
}
request.setAttribute("count" + i,h + "");
}
//查找当前部门名称
String sql3 = "SELECT * FROM departments where dep_id=?";
PreparedStatement pstmt3 = conn.prepareStatement(sql3);
pstmt3.setString(1,tjdept);
ResultSet rs3 = pstmt3.executeQuery();
rs3.next();
request.setAttribute("dept",rs3.getString("dep_name"));
request.setAttribute("dep_id",rs3.getString("dep_id"));
//某部门总人数
request.setAttribute("dept_count",k + "");
} catch(Exception e1) {
e1.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return mapping.findForward("picture_zhicheng");
}
//绘图----职称
public ActionForward picture_zhicheng(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws IOException{
String dept = (String)request.getAttribute("dept");
String dept_id = (String)request.getAttribute("dept_id");
int j0 = Integer.parseInt((String)request.getAttribute("j0"));
int j1 = Integer.parseInt((String)request.getAttribute("j1"));
int j2 = Integer.parseInt((String)request.getAttribute("j2"));
int j3 = Integer.parseInt((String)request.getAttribute("j3"));
int j4 = Integer.parseInt((String)request.getAttribute("j4"));
int j5 = Integer.parseInt((String)request.getAttribute("j5"));
int j6 = Integer.parseInt((String)request.getAttribute("j6"));
int j7 = Integer.parseInt((String)request.getAttribute("j7"));
//CategoryDataset dataset = getDataSet2();
DefaultCategoryDataset datasets = new DefaultCategoryDataset();
datasets.addValue(j0, dept, "经济师");
datasets.addValue(j1, dept, "助理师");
datasets.addValue(j2, dept, "工程师");
datasets.addValue(j3, dept, "高工师");
datasets.addValue(j4, dept, "会计师");
datasets.addValue(j5, dept, "高会师");
datasets.addValue(j6, dept, "统计师");
datasets.addValue(j7, dept, "政治师");
CategoryDataset dataset = datasets;
JFreeChart chart = ChartFactory.createBarChart3D(
"员工比例图", // 图表标题
"类型", // 目录轴的显示标签
"人数", // 数值轴的显示标签
dataset, // 数据集
PlotOrientation.VERTICAL, // 图表方向:水平、垂直
true, // 是否显示图例(对于简单的柱状图必须是false)
false, // 是否生成工具
false // 是否生成URL链接
);
FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("c:\\zhicheng.jpg");
ChartUtilities.writeChartAsJPEG(fos_jpg,100,chart,600,400,null);
} finally {
try {
fos_jpg.close();
} catch (Exception e) {
e.printStackTrace();
}
}
return mapping.findForward("tj_zhicheng_pic");
}
/**
* 获取一个演示用的简单数据集对象
* @return
*/
private static CategoryDataset getDataSet() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10, null, "员工");
dataset.addValue(20, null, "厂长");
dataset.addValue(30, null, "副厂长");
dataset.addValue(40, null, "技术员");
//dataset.addValue(500, null, "荔枝");
return dataset;
}
/**
* 获取一个演示用的组合数据集对象
* @return
*/
private static CategoryDataset getDataSet2() {
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
dataset.addValue(10, "部门", "员工");
//dataset.addValue(100, "上海", "苹果");
//dataset.addValue(100, "广州", "苹果");
dataset.addValue(20, "部门", "厂长");
//dataset.addValue(200, "上海", "梨子");
//dataset.addValue(200, "广州", "梨子");
dataset.addValue(30, "部门", "副厂长");
//dataset.addValue(300, "上海", "葡萄");
//dataset.addValue(300, "广州", "葡萄");
dataset.addValue(40, "部门", "技术员");
//dataset.addValue(400, "上海", "香蕉");
//dataset.addValue(400, "广州", "香蕉");
//dataset.addValue(500, "北京", "荔枝");
//dataset.addValue(500, "上海", "荔枝");
//dataset.addValue(500, "广州", "荔枝");
return dataset;
}
//找出数据--性别
public ActionForward tj_picture_xingbie(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
ArrayList dlist1[] = new ArrayList[2];
for (int i = 0; i < 2; i++) {
dlist1[i] = new ArrayList();
}
DynaActionForm dyform = (DynaActionForm) form;
String tjdept = (String) dyform.get("tjdept");
//TJ_Type_query ttq = new TJ_Type_query();
Connection conn = null;
Statement stmt = null;
try{
//链接池连接数据库
DataSource ds = (DataSource)this.getDataSource(request,"oracledb");
conn = ds.getConnection();
//查找数据库中全部职称类型的记录
int k = 0;
int n = 0;
int h = 0;
String n1 = "";
String sex = "";
for(int i = 0;i < 2; i++){
if (i == 0){
sex = "男";
}else {
sex = "女";
}
n = 0;
h = 0;
n1 = "";
//查找数据库中匹配职称类型的记录
String sql2 = "SELECT * FROM employees e WHERE e.emp_sex=? AND e.dep_dep_id=?";
PreparedStatement pstmt = conn.prepareStatement(sql2);
pstmt.setString(1,sex);
pstmt.setString(2,tjdept);
ResultSet rs2 = pstmt.executeQuery();
while(rs2.next()){
UserForm dept1 = new UserForm();
dept1.setDeptno(rs2.getInt("emp_id")+"");
dept1.setDname(rs2.getString("emp_name"));
dlist1[i].add(dept1);
n++;
k++;
}
n1 = n + "";
ArrayList dlist2 = new ArrayList();
UserForm dept3 = new UserForm();
dept3.setDeptno(n1);
dlist2.add(dept3);
request.setAttribute("j" + i,n1);
String dept = "dept" + i;
request.setAttribute(dept,dlist1[i]);
request.setAttribute("count",k + "");
//查找全厂该职称总数
String sql4 = "SELECT * FROM employees e WHERE e.emp_sex=?";
//stmt = conn.createStatement();
PreparedStatement pstmt4 = conn.prepareStatement(sql4);
pstmt4.setString(1,sex);
ResultSet rs4 = pstmt4.executeQuery();
while(rs4.next()){
h++;
}
request.setAttribute("count" + i,h + "");
}
//查找当前部门名称
String sql3 = "SELECT * FROM departments where dep_id=?";
//stmt = conn.createStatement();
PreparedStatement pstmt3 = conn.prepareStatement(sql3);
pstmt3.setString(1,tjdept);
ResultSet rs3 = pstmt3.executeQuery();
rs3.next();
request.setAttribute("dept",rs3.getString("dep_name"));
request.setAttribute("dep_id",rs3.getString("dep_id"));
//某部门有职称人数
request.setAttribute("dept_count",k + "");
} catch(Exception e1) {
e1.printStackTrace();
} finally {
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
request.setAttribute("dept0",dlist1[0]);
request.setAttribute("dept1",dlist1[1]);
return mapping.findForward("picture_xingbie");
}
//绘图----性别
public ActionForward picture_xingbie(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws IOException{
String dept = (String)request.getAttribute("dept");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -