/** 获取指定CPU ID的CPU利用率列表 */
  public List<CPUPerc> getPercsById(long id) {
    String sql = "select * from t_cpu_prec where prec_cpuid=?";
    List<CPUPerc> list = new ArrayList<CPUPerc>(20);
    try {
      super.doStart();
      pstmt = super.conn.prepareStatement(sql);
      pstmt.setLong(1, id);
      rs = pstmt.executeQuery();
      while (rs.next()) {
        CPUPerc cp = new CPUPerc(rs.getLong("prec_timestamp"));
        cp.setIdle(rs.getDouble("prec_idle"));
        cp.setNice(rs.getDouble("prec_nice"));
        cp.setSys(rs.getDouble("prec_sys"));
        cp.setUser(rs.getDouble("prec_user"));
        cp.setWait(rs.getDouble("prec_wait"));
        cp.setCombined(rs.getDouble("prec_combined"));
        cp.setTimestamp(rs.getLong("prec_timestamp"));

        list.add(cp);
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      DButil.getInstance().close(pstmt, rs);
    }
    return list;
  }
  /** 获取指定设备ID的CPU列表 */
  public List<CPU> getCPUsById(long id) {
    String sql = "select * from t_cpu where cpu_eqptid =?";
    List<CPU> list = new ArrayList<CPU>(3);
    try {
      super.doStart();
      pstmt = super.conn.prepareStatement(sql);
      pstmt.setLong(1, id);
      rs = pstmt.executeQuery();
      while (rs.next()) {
        CPU cpu = new CPU(rs.getLong("cpu_id"));
        cpu.setTotalCores(rs.getInt("cpu_totalCores"));
        cpu.setMhz(rs.getInt("cpu_mhz"));
        cpu.setCacheSize(rs.getLong("cpu_cacheSize"));
        cpu.setModel(rs.getString("cpu_model"));
        cpu.setVendor(rs.getString("cpu_vendor"));

        list.add(cpu);
      }
    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      DButil.getInstance().close(pstmt, rs);
    }

    return list;
  }
 /** 获取指定CPU ID和时间戳的CPU利用率 */
 public CPUPerc getCPUPercById(long id, long timestamp) {
   String sql = "select * from t_cpu_prec where prec_cpuid=? and prec_timestamp=?";
   CPUPerc cp = null;
   try {
     super.doStart();
     pstmt = super.conn.prepareStatement(sql);
     pstmt.setLong(1, id);
     pstmt.setLong(2, timestamp);
     rs = pstmt.executeQuery();
     while (rs.next()) {
       cp = new CPUPerc(rs.getLong("prec_timestamp"));
       cp.setIdle(rs.getDouble("prec_idle"));
       cp.setNice(rs.getDouble("prec_nice"));
       cp.setSys(rs.getDouble("prec_sys"));
       cp.setUser(rs.getDouble("prec_user"));
       cp.setWait(rs.getDouble("prec_wait"));
       cp.setCombined(rs.getDouble("prec_combined"));
       cp.setTimestamp(rs.getLong("prec_timestamp"));
     }
   } catch (Exception e) {
     e.printStackTrace();
   } finally {
     DButil.getInstance().close(pstmt, rs);
   }
   return cp;
 }
 /** 更新指定CPU ID的CPU利用率 */
 public void addCPUPrecsById(long cpuid, double percent, long timestamp) {
   String sql = "insert into t_cpu_prec (prec_cpuid,prec_combined,prec_timestamp)values (?,?,?)";
   try {
     super.doStart();
     pstmt = super.conn.prepareStatement(sql);
     pstmt.setLong(1, cpuid);
     pstmt.setDouble(2, percent);
     pstmt.setLong(3, timestamp);
     pstmt.executeUpdate();
   } catch (Exception e) {
     e.printStackTrace();
   } finally {
     DButil.getInstance().close(pstmt, null);
   }
 }
  /** 存储主机CPU的配置信息 */
  public void saveHostCPUInfo(
      long hcpu_mosn,
      String hcpu_name,
      String hcpu_type,
      String hcpu_catch,
      String hcpu_sign,
      double hcpu_mhz,
      String hcpu_model,
      String hcpu_vender,
      long hcpu_eqptmosn) {

    String sql =
        "insert into t_hostcpu (hcpu_mosn,hcpu_name,hcpu_type,hcpu_catch,hcpu_sign,hcpu_mhz,hcpu_model,hcpu_vender,hcpu_eqptmosn) values  (?,?,?,?,?,?,?,?,?)";

    try {
      super.doStart();
      pstmt = super.conn.prepareStatement(sql);
      pstmt.setLong(1, hcpu_mosn);
      pstmt.setString(2, hcpu_name);
      pstmt.setString(3, hcpu_type);
      pstmt.setString(4, hcpu_catch);
      pstmt.setString(5, hcpu_sign);
      pstmt.setDouble(6, hcpu_mhz);
      pstmt.setString(7, hcpu_model);
      pstmt.setString(8, hcpu_vender);
      // pstmt.setLong(9, hcpu_bits);
      pstmt.setLong(9, hcpu_eqptmosn);

      pstmt.executeUpdate();

    } catch (Exception e) {
      e.printStackTrace();
    } finally {
      DButil.getInstance().close(pstmt, null);
    }
  }