protected void setParameter( PreparedStatement ps, ParameterMapping mapping, Object[] parameters, int i) throws SQLException { Object value = parameters[i]; // Apply Null Value String nullValueString = mapping.getNullValue(); if (nullValueString != null) { TypeHandler handler = mapping.getTypeHandler(); if (handler.equals(value, nullValueString)) { value = null; } } // Set Parameter TypeHandler typeHandler = mapping.getTypeHandler(); if (value != null) { typeHandler.setParameter(ps, i + 1, value, mapping.getJdbcTypeName()); } else if (typeHandler instanceof CustomTypeHandler) { typeHandler.setParameter(ps, i + 1, value, mapping.getJdbcTypeName()); } else { int jdbcType = mapping.getJdbcType(); if (jdbcType != JdbcTypeRegistry.UNKNOWN_TYPE) { ps.setNull(i + 1, jdbcType); } else { ps.setNull(i + 1, Types.OTHER); } } }