Ich benutze Derby als eine eingebettete Datenbank. Außerdem verwende ich die In-Memory-Datenbankoption für meine Komponententests.Herunterfahren der Derby In-Memory-Datenbank Richtig
Was ich nicht herausfinden kann ist, wie man die Derby-Datenbank (A quick look at the code) richtig heruntergefahren. Ich glaube, ich habe es funktioniert für eine Standard-Datenbank, aber ich bekomme verschiedene Ausnahmen, wenn Sie ähnliche Code auf einer In-Memory-Datenbank versuchen.
Ich werde Details weglassen, ich werde sie hinzufügen, wenn andere Gefühl benötigt werden.
Grundsätzlich versuche ich meine Datenbank in diesen beiden Moden herunterzufahren, wo meine In-Memory-Datenbank konsistent "eh" genannt wird:
DriverManager.getConnection("jdbc:derby:memory:eh;shutdown=true");
dann:
DriverManager.getConnection("jdbc:derby:eh;shutdown=true");
der ehemaligen Ergebnisse in an exception but not the one expected. Die Details sind:
java.sql.SQLNonTransientConnectionException: Datenbank 'Speicher: eh' Shutdown.
Letzteres führt zu
java.sql.SQLException: Datenbank 'eh' nicht gefunden.
Basierend auf dem, was ich herausgefunden habe, wollen wir eine SQLException
, aber nicht die, die wir erhalten. Auf der anderen Seite scheint der SQLNonTransientConnectionException
Fehler angemessener, aber ist nicht der richtige Typ (obwohl es von SQLException
abgeleitet ist), noch hat es den richtigen Statuscode. Der staatliche Code lautet: 08006
.
Der Beispielcode, den ich habe, veranschaulicht, dass ein SQLException
mit einem SQL-Status von "XJ015".
Hinweis: Das Beispiel, das ich verweise, ist: WwdEmbedded Program (Java Code).
Verwenden Sie Drop statt Herunterfahren scheint, was Sie wollen. Herunterfahren scheint die Datenbank nicht zu löschen. – BrunoJCM