связанных, но не связанных:
while (wordList.next()) {
stmt = conn.prepareStatement("select synonym from table where word=?");
stmt.setString(1, wordList.getString(1));
syns = stmt.executeQuery();
process(syns, wordList.getString(1));
}
Вы должны переместить этот запрос подготовительного состояния за пределы цикла:
stmt = conn.prepareStatement("select synonym from table where word=?");
while (wordList.next()) {
stmt.setString(1, wordList.getString(1));
syns = stmt.executeQuery();
process(syns, wordList.getString(1));
}
Весь смысл подготовки оператора состоит в том, что БД должна скомпилировать / кэшировать / и т. Д., Поскольку вы собираетесь использовать этот оператор несколько раз. Вам также может понадобиться явно очистить наборы результатов, если вы собираетесь выполнять такое количество запросов, чтобы гарантировать, что у вас не закончатся курсоры.