Как правильно отключить базу данных 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-код).