private void setUpdateStatementValues(ArrayList<Integer> keyIndexes,
			PreparedStatement pstmt, String[] columns, String[] values,
			Double[] doubleValues) throws MobbedException {
		String[] keyColumns = addByIndex(keyIndexes, columns);
		String[] nonKeyColumns = removeByIndex(keyIndexes, columns);
		String[] keyValues = addByIndex(keyIndexes, values);
		String[] nonKeyValues = removeByIndex(keyIndexes, values);
		int i;
		int k = 0;
		int l = 0;
		try {
			for (i = 0; i < nonKeyColumns.length; i++) {
				int targetType = lookupTargetType(nonKeyColumns[i]);
				if (doubleValues != null && targetType == Types.DOUBLE) {
					if (doubleValues[k] != null)
						pstmt.setDouble(i + 1, doubleValues[k]);
					else
						pstmt.setObject(i + 1, doubleValues[k]);
					k++;
				} else {
					pstmt.setObject(i + 1, nonKeyValues[l], targetType);
					l++;
				}
			}
			for (int j = 0; j < keyColumns.length; j++) {
				int targetType = lookupTargetType(keyColumns[j]);
				pstmt.setObject(i + j + 1, keyValues[j], targetType);
			}
		} catch (SQLException ex) {
			throw new MobbedException("Could not set value\n" + ex.getMessage());
		}
	}