static void assignValueByItsType()

in dekaf-jdbc/src/impl/JdbcParametersHandler.java [26:118]


  static void assignValueByItsType(@NotNull final PreparedStatement stmt,
                                   final int index,
                                   @NotNull final Object object)
          throws DBParameterSettingException
  {
    String setter = null;
    try {
      if (object instanceof Boolean) {
        setter = "setBoolean";
        stmt.setBoolean(index, (Boolean) object);
      }
      else if (object instanceof Byte) {
        setter = "setByte";
        stmt.setByte(index, (Byte) object);
      }
      else if (object instanceof Short) {
        setter = "setShort";
        stmt.setShort(index, (Short) object);
      }
      else if (object instanceof Integer) {
        setter = "setInt";
        stmt.setInt(index, (Integer) object);
      }
      else if (object instanceof Float) {
        setter = "setFloat";
        stmt.setFloat(index, (Float) object);
      }
      else if (object instanceof Double) {
        setter = "setDouble";
        stmt.setDouble(index, (Double) object);
      }
      else if (object instanceof BigInteger) {
        setter = "setBigDecimal";
        BigDecimal bigDecimal = new BigDecimal(object.toString());
        stmt.setBigDecimal(index, bigDecimal);
      }
      else if (object instanceof BigDecimal) {
        setter = "setBigDecimal";
        stmt.setBigDecimal(index, (BigDecimal) object);
      }
      else if (object instanceof Long) {
        setter = "setLong";
        stmt.setLong(index, (Long) object);
      }
      else if (object instanceof Character) {
        setter = "setString";
        stmt.setString(index, object.toString());
      }
      else if (object instanceof String) {
        setter = "setString";
        stmt.setString(index, (String) object);
      }
      else if (object instanceof java.sql.Date) {
        setter = "setDate";
        stmt.setDate(index, (java.sql.Date) object);
      }
      else if (object instanceof Timestamp) {
        setter = "setTimestamp";
        stmt.setTimestamp(index, (Timestamp) object);
      }
      else if (object instanceof java.sql.Time) {
        setter = "setTime";
        stmt.setTime(index, (java.sql.Time) object);
      }
      else if (object instanceof java.util.Date) {
        setter = "setTimestamp";
        stmt.setTimestamp(index, new Timestamp(((java.util.Date) object).getTime()));
      }
      else if (object instanceof byte[]) {
        setter = "setBytes";
        stmt.setBytes(index, (byte[]) object);
      }
      else {
        setter = "setObject";
        stmt.setObject(index, object);
      }
    }
    catch (SQLException sqle) {
      String message =
          format("Error %d occurred during setting parameter %d using %s(). The original value class is %s. Exception: %s",
                 sqle.getErrorCode(), index, setter, object.getClass().getCanonicalName(), sqle.getMessage());
      throw new DBParameterSettingException(message, sqle, null);
    }
    catch (Exception e) {
      //noinspection ConstantConditions
      String message = setter != null
          ? format("A problem occurred during setting parameter %d using %s(). The original value class is %s. Exception %s: %s",
                   index, setter, object.getClass().getCanonicalName(), e.getClass().getSimpleName(), e.getMessage())
          : format("An unexpected problem with setting parameter %d. Exception %s: %s",
                   index, e.getClass().getSimpleName(), e.getMessage());
      throw new DBParameterSettingException(message, e, null);
    }
  }