예제 #1
0
  public int updateProfileById(Integer profileId, String profileXML) {

    if (profileId == null) {
      throw new IllegalArgumentException("profileId must not be 'null'");
    }
    //        if (profileXML == null) {
    //            throw new IllegalArgumentException("domain must not be an empty String!");
    //        }
    //
    //        StringBuilder sqlString = new StringBuilder("UPDATE ");
    //        sqlString.append(DEFAULT_TABLE_NAME);
    //        sqlString.append(" SET ");
    //        sqlString.append(DEFAULT_PROFILE_DATA_COLUMN_NAME);
    //        sqlString.append(" =? WHERE ");
    //        sqlString.append(DEFAULT_PROFILE_ID_COLUMN_NAME);
    //        sqlString.append(" =?");

    Object[] args = {profileXML, profileId};

    int[] argTypes = {Types.BLOB, Types.INTEGER};

    PreparedStatementCreatorFactory factory =
        new PreparedStatementCreatorFactory(UPDATE_PROFILE_BY_ID_QUERY, argTypes);

    int rowsAffected = getJdbcTemplate().update(factory.newPreparedStatementCreator(args));
    return rowsAffected;
  }
  public List<Code> searchCodesByDevice(String deviceId, Date start, Date end) {
    // @formatter:on
    String query =
        "SELECT\n"
            + "DISTINCT "
            + "code, "
            + "code_system "
            + "FROM "
            + "t5_observation "
            + "JOIN "
            + "t5_device "
            + "ON "
            + "t5_observation.id = t5_device.observation_id "
            + "WHERE "
            + "start_time BETWEEN ? AND ? "
            + "AND device_id = ? ";
    // @formatter:off

    long queryStartMilli = System.currentTimeMillis();
    PreparedStatementCreatorFactory pscf =
        new PreparedStatementCreatorFactory(query, Types.TIMESTAMP, Types.TIMESTAMP, Types.VARCHAR);
    PreparedStatementCreator psc =
        pscf.newPreparedStatementCreator(Arrays.asList(start, end, deviceId));
    List<Code> result = jdbcTemplate.query(psc, new SummaryRowMapper());
    logger.debug(
        "Fetching summary from SQL DB took " + (System.currentTimeMillis() - queryStartMilli));

    return result;
  }
예제 #3
0
  public int storeProfile(Integer tenantId, Integer itemId, Integer itemTypeId, String profileXML) {

    if (tenantId == null) {
      throw new IllegalArgumentException("tenantId must not be 'null'!");
    }
    if (itemId == null) {
      throw new IllegalArgumentException("itemId must not be 'null'!");
    }
    if (itemTypeId == null) {
      throw new IllegalArgumentException("itemTypeId must not be 'null'");
    }
    //        if (profileXML == null) {
    //            throw new IllegalArgumentException("domain must not be an empty String!");
    //        }
    //
    //        StringBuilder sqlString = new StringBuilder("INSERT INTO ");
    //        sqlString.append(DEFAULT_TABLE_NAME);
    //        sqlString.append(" SET ");
    //        sqlString.append(DEFAULT_TENANT_ID_COLUMN_NAME);
    //        sqlString.append(" =?, ");
    //        sqlString.append(DEFAULT_ITEM_ID_COLUMN_NAME);
    //        sqlString.append(" =?, ");
    //        sqlString.append(DEFAULT_ITEM_TYPE_ID_COLUMN_NAME);
    //        sqlString.append(" =?, ");
    //        sqlString.append(DEFAULT_PROFILE_DATA_COLUMN_NAME);
    //        sqlString.append(" =? ON DUPLICATE KEY UPDATE ");
    //        sqlString.append(DEFAULT_PROFILE_DATA_COLUMN_NAME);
    //        sqlString.append(" =?");

    Object[] args = {tenantId, itemId, itemTypeId, profileXML, profileXML};

    int[] argTypes = {Types.INTEGER, Types.INTEGER, Types.INTEGER, Types.BLOB, Types.BLOB};

    PreparedStatementCreatorFactory factory =
        new PreparedStatementCreatorFactory(STORE_PROFILE_QUERY, argTypes);

    int rowsAffected = getJdbcTemplate().update(factory.newPreparedStatementCreator(args));
    return rowsAffected;
  }
 public static PreparedStatementCreator newPreparedStatementCreator(
     String sql, int[] types, Object[] params) {
   PreparedStatementCreatorFactory factory = new PreparedStatementCreatorFactory(sql, types);
   factory.setReturnGeneratedKeys(true);
   return factory.newPreparedStatementCreator(params);
 }
  public List<SqlObservation> searchByDevice(
      String deviceId, String observationTypeCode, Date start, Date end) {
    List<SqlObservation> result = new ArrayList<>();
    // @formatter:off
    String query =
        "SELECT "
            + "t5_observation.id, "
            + "message_id, "
            + "uid, "
            + "set_id, "
            + "start_time, "
            + "end_time, "
            + "value, "
            + "value_type, "
            + "code, "
            + "code_system, "
            + "unit, "
            + "unit_system, "
            + "sample_rate, "
            + "data_range, "
            + "array_agg(device_id) AS device_id_list, "
            + "array_agg(level) AS device_level_list "
            + "FROM "
            + "t5_observation "
            + "JOIN "
            + "t5_device "
            + "ON "
            + "t5_observation.id = t5_device.observation_id "
            + "WHERE "
            + "code = ? "
            + "AND "
            + "start_time BETWEEN ? AND ? "
            + "AND "
            + "device_id = ? "
            + "GROUP BY "
            + "t5_observation.id, "
            + "message_id, "
            + "uid, "
            + "set_id, "
            + "start_time, "
            + "end_time, "
            + "value, "
            + "value_type, "
            + "code, "
            + "code_system, "
            + "unit, "
            + "unit_system, "
            + "sample_rate, "
            + "data_range "
            + "ORDER BY start_time ";
    // @formatter:on

    long queryStartMilli = System.currentTimeMillis();
    PreparedStatementCreatorFactory pscf =
        new PreparedStatementCreatorFactory(
            query, Types.VARCHAR, Types.TIMESTAMP, Types.TIMESTAMP, Types.VARCHAR);
    PreparedStatementCreator psc =
        pscf.newPreparedStatementCreator(Arrays.asList(observationTypeCode, start, end, deviceId));
    result = jdbcTemplate.query(psc, new ObservationRowMapper());
    logger.debug("Fetching from SQL DB took " + (System.currentTimeMillis() - queryStartMilli));
    return result;
  }