Получение исключения с помощью запросов MySQL и ExecutorService#submitJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Получение исключения с помощью запросов MySQL и ExecutorService#submit

Сообщение Anonymous »

Я пытаюсь сделать SQL-запросы асинхронными, но получаю следующее исключение:

Код: Выделить всё

Exception in thread "main" java.sql.SQLException: Operation not allowed after ResultSet closed
А это мой код:

Код: Выделить всё

ResultSetCallable callable = executeUpdate(REGISTER_NEW_ACCOUNT,
new VarcharColumn("name", name),
new VarcharColumn("uuid", uuid.toString()),
new VarcharColumn("rank", PlayerRank.NONE.name()),
new VarcharColumn("packageRank", PlayerRank.NONE.name())
);
Future future = SQL_EXECUTOR.submit(callable);
try (ResultSet resultSet = future.get()) {
if (resultSet.next()) {
return resultSet.getInt(1);
}
}
catch (ExecutionException | InterruptedException | SQLException e) {
throw new RuntimeException(e);
}
return -1;
МетодexecuteUpdate:

Код: Выделить всё

public ResultSetCallable executeUpdate(String query, Column... columns) {
try (
Connection connection = getConnection();
PreparedStatement statement = connection.prepareStatement(query, Statement.RETURN_GENERATED_KEYS)
) {
for (int i = 0; i < columns.length; i++) {
columns[i].setValue(statement, i + 1);
}

statement.executeUpdate();

try (ResultSet resultSet = statement.getGeneratedKeys()) {
return () -> resultSet;
}
}
catch (SQLException e) {
throw new RuntimeException(e);
}
}
А ResultSetCallable — это интерфейс, который просто реализует Callable.
SQL_EXECUTOR — это статический финальный вариант ExecutorService SQL_EXECUTOR = Executors.newCachedThreadPool(); >. Я использую HikariCP для пула соединений. Итак, кто-нибудь знает, почему я получаю это исключение, что не так с моим кодом или что мне следует знать.
Я пробовал использовать синхронизированный и изменчивый вариант, но ничего.

Подробнее здесь: https://stackoverflow.com/questions/786 ... vicesubmit
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Получение исключения с помощью запросов MySQL и ExecutorService#submit
    Anonymous » » в форуме JAVA
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Как обмениваться данными между ExecutorService.execute() из другого класса с помощью ExecutorService во время работы в с
    Anonymous » » в форуме JAVA
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • Как обмениваться данными между ExecutorService.execute() из другого класса с помощью ExecutorService во время работы в с
    Anonymous » » в форуме Android
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous
  • Действие не выполняется с помощью CakePHP Js->submit()
    Anonymous » » в форуме Php
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • $("form").submit не работает на iPad и iPhone
    Anonymous » » в форуме Jquery
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»