一、概述:
1.导入jfreechart-1.0.14.jar包
2.实时插入数据
3.获取where条件子句
4.自定义SQL语句
5.拼接SQL 并执行遍历
6.获取jfreechart数据源
7.制作jfreechart折线图
8.获取json{共几页,当前页码,共几条,起始条数,终止条数,数据list}
二、oracle数据库设计
ELECTR_EQU表
ELECTR_DATA表
三、代码实例
package electricityMonitor;
import java.awt.*;
import java.sql.*;
import org.jfree.chart.renderer.xy.XYItemRenderer;
import org.jfree.chart.renderer.xy.XYLineAndShapeRenderer;
import org.jfree.chart.title.TextTitle;
import org.jfree.data.time.*;
import org.json.*;
import java.text.*;
import java.util.*;
import java.util.Date;
import java.util.Timer;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;
public class ElectricityMonitor {
private static String USERNAMR = "mine";
private static String PASSWORD = "mine";
private static String DRVIER = "oracle.jdbc.OracleDriver";
private static String URL = "jdbc:oracle:thin:@192.168.100.57:1521:orcl";
Connection connection = null;
PreparedStatement pstm = null;
ResultSet rs = null;
static String equidRs;
private static ElectricityMonitor instance = null;
public static ElectricityMonitor getInstance() {
if (instance == null) instance = new ElectricityMonitor();
return instance;
}
//实时插入数据
private ElectricityMonitor() {
connection = getConnection();
TimerTask task = new TimerTask() {
public void run() {
insertData();
}
};
Timer timer = new Timer();
long delay = 0;
long intevalPeriod = 1 * 1000;
timer.scheduleAtFixedRate(task, delay, intevalPeriod);
}
//获取where条件子句
private String getWhereStr(String condition){
String ret = "";
try {
JSONObject obj = new JSONObject(condition);
String areaname = obj.getString("areaname");
String equid = obj.getString("equid");
String equname = obj.getString("equname");
if (! areaname.trim().equals("")) {
ret += String.format(" areaname = '%s' ", areaname);
}
if (! equid.trim().equals("")) {
if (!ret.equals("")) ret += " and ";
ret += String.format(" equid = '%s' ", equid);
}
if (! equname.trim().equals("")) {
if (!ret.e