Как правильно отключить базу данных Derby в памяти

Я использую дерби в качестве встроенной базы данных. Кроме того, я использую опцию базы данных в памяти для своих модульных тестов.

Что я не могу понять, это как правильно выключить(Быстрый взгляд на код) база данных Derby. Я полагаю, у меня это работает для стандартной базы данных, но я получаю различные исключения при попытке аналогичного кода в базе данных в памяти.

Я опущу детали, я добавлю их, если потребуется другое чувство.

По сути, я пытаюсь закрыть свою базу данных в этих двух модах, где моя база данных в памяти постоянно называется «а»:

DriverManager.getConnection("jdbc:derby:memory:eh;shutdown=true");

затем:

DriverManager.getConnection("jdbc:derby:eh;shutdown=true");

Первые результаты висключение, но не ожидаемое, Детали:

java.sql.SQLNonTransientConnectionException: база данных «память: eh» завершение работы.

Последнее приводит к

java.sql.SQLException: База данных 'eh' не найдена.

Исходя из того, что я смог выяснить, мы хотимSQLException но не тот, который мы получаем. С другой стороны,SQLNonTransientConnectionException ошибка кажется более уместной, но она не того типа (хотя она является производной отSQLException) и при этом он не имеет правильного кода штата. Код штата в конечном итоге будет:08006.

Пример кода, который я имею, показывает, чтоSQLException с состоянием SQL "XJ015".

Примечание. Пример, на который я ссылаюсь:WwdEmbedded Program (Java-код).

Ответы на вопрос(3)

Ваш ответ на вопрос