В принципе, это должно выполняться одним запросом, считываться во всех значениях из одного столбца и затем запускать некоторые другие запросы, основанные на этих значениях. Он превращает значения в массив целых чисел и передает его в качестве параметра для операторов для других запросов, но когда они выполняются, он выдает «синтаксическую ошибку в точке или рядом с« 1 ». Позиция: 87»Ошибка синтаксиса запроса запроса JDBC
Пример запросы:
"SELECT foo.id, bar.* "
+ "FROM foo, bar y "
+ "WHERE foo.baz = bar.baz and foo.id IN ? "
+ "GROUP BY foo.id";
И параметр устанавливающих бит (результат является ArrayList из данных столбца):
Integer[] data = result.toArray(new Integer[result.size()]);
Array array = connection.createArrayOf("INTEGER", data);
statement.clearParameters();
statement.setArray(1, array);
(код, потому что это обобщенный для домашнего задания)
Спецификация типа массива в JDBC - это такой болезненный надзор. Там 'java.sql.Types', но по какой-то причине они решили вместо этого использовать произвольные строки для массивов. WTF? –
@CraigRinger: Я предполагаю, что это потому, что вряд ли будет поддерживаться массив СУБД. Фактически Postgres - единственный, кого я знаю. –
Спасибо за помощь! И да, это странный способ сделать это, но в задании было поручено, чтобы это были отдельные запросы.Думаю, идея состоит в том, что нам нужно научиться манипулировать данными на уровне приложений? –