Utilizzo il derby come database incorporato. Inoltre, sto usando la sua opzione di database in memoria per i miei test di unità.Come arrestare il database Derby in memoria Correttamente
Quello che non riesco a capire è come spegnere correttamente (A quick look at the code) il database Derby. Credo che abbia funzionato per un database standard, ma sto ricevendo diverse eccezioni quando provo codice simile su un database in memoria.
Ho intenzione di omettere i dettagli, li aggiungerò se sono necessarie altre sensazioni.
In sostanza, sto cercando di chiudere il mio database in questi due modi in cui il mio database in memoria è costantemente chiamato "eh":
DriverManager.getConnection("jdbc:derby:memory:eh;shutdown=true");
poi:
DriverManager.getConnection("jdbc:derby:eh;shutdown=true");
L'ex risultati in an exception but not the one expected. I dettagli sono:
java.sql.SQLNonTransientConnectionException: memoria del database: eh 'shutdown.
Gli ultimi risultati in
java.sql.SQLException: Database 'eh' non trovato.
Sulla base di quello che sono stato in grado di capire, vogliamo un SQLException
ma non quello che riceviamo. D'altra parte, l'errore SQLNonTransientConnectionException
sembra più appropriato ma non è il tipo giusto (sebbene sia derivato da SQLException
) né abbia il codice di stato corretto. Il codice di stato finirà per essere: 08006
.
Il codice di esempio che ho illustrato è un SQLException
con uno stato SQL di "XJ015".
Nota: l'esempio di riferimento è: WwdEmbedded Program (Java Code).
L'utilizzo della derivazione anziché dello spegnimento sembra ciò che si desidera. lo spegnimento sembra non far cadere il database. – BrunoJCM