@Override
  public DataItems readInputByText(String[] conditions) {

    String whichNode = conditions[0]; // 得到需要预测的iP
    DataItems dataItems = new DataItems();
    Calendar lastYear = Calendar.getInstance();
    lastYear.set(2014, 9, 1, 0, 0, 0);
    String line = null;
    try {
      FileInputStream is = new FileInputStream(new File(task.getSourcePath()));
      BufferedReader reader = new BufferedReader(new InputStreamReader(is));
      reader.readLine();
      while ((line = reader.readLine()) != null) {
        String[] values = line.split(",");
        String srcIp = values[1];
        String destIp = values[2];
        if (srcIp.compareTo(whichIp) == 0 || destIp.compareTo(whichIp) == 0) {
          lastYear.add(Calendar.HOUR_OF_DAY, 1);
          dataItems.add1Data(lastYear.getTime(), values[3]);
        }
      }
      reader.close();
    } catch (IOException e) {
      e.printStackTrace();
    }
    return dataItems;
  }
  @Override
  public DataItems readInputBySql(String condition) {

    String sqlStr = condition; // sql语句需要根据实际情况的表进行书写
    String whichNode = condition;
    DataItems dataItems = new DataItems();
    Calendar lastYear = Calendar.getInstance();
    lastYear.set(2014, 9, 1, 0, 0, 0);
    conn.closeConn();
    ResultSet rs = conn.sqlQuery(sqlStr);
    if (rs == null) {
      System.out.println("no data satisfied data ,please check...");
      return null;
    }
    ResultSetMetaData meta = null;
    int numRecords = 0;
    int condition_num = 0;
    try {

      meta = rs.getMetaData();
      int numCols = meta.getColumnCount();
      data = new DataItems();
      while (rs.next()) {
        numRecords++;

        String time = rs.getString(1).trim();
        Date d = parseTime(time); // 将数值时间转化为标准时间格式

        String srcIp = rs.getString(2); // source IP
        String destIp = rs.getString(3); // destination IP
        String traffic = rs.getString(4); // traffic

        if (srcIp.compareTo(whichIp) == 0 || destIp.compareTo(whichIp) == 0) {
          lastYear.add(Calendar.HOUR_OF_DAY, 1);
          dataItems.add1Data(lastYear.getTime(), traffic);
        }
      }
      rs.close();
    } catch (SQLException e) {
      e.printStackTrace();
    }
    System.out.println("该表总记录数:" + numRecords + " 满足条件的记录数有:" + condition_num);
    // System.out.println("锟斤拷取锟斤拷锟�" + data.getLength() + "锟斤拷锟斤拷录锟斤拷");

    return data;
  }
  public void displayDataItems(DataItems items) {
    if (items == null) return;
    // TimeSeriesCollection tsc = new TimeSeriesCollection();
    XYSeriesCollection tsc = new XYSeriesCollection();

    // TimeSeries ts = new TimeSeries("序列值");
    XYSeries ts = new XYSeries("序列值");

    int len = items.getLength();
    for (int i = 0; i < len; i++) {
      DataItem item = items.getElementAt(i);
      Date date = item.getTime();
      double val = Double.parseDouble(item.getData());
      // ts.addOrUpdate(items.getTimePeriodOfElement(i), val);
      ts.add(i, val);
    }
    tsc.addSeries(ts);
    chart.getXYPlot().setDataset(tsc);
  }