Estoy usando derby como una base de datos incrustada. Además, estoy usando su opción de base de datos en memoria para mis pruebas unitarias.Cómo cerrar la base de datos en memoria de Derby Correctamente
Lo que no puedo entender es cómo cerrar correctamente (A quick look at the code) la base de datos Derby. Creo que lo tengo trabajando para una base de datos estándar, pero obtengo excepciones diferentes cuando intento un código similar en una base de datos en memoria.
Voy a omitir los detalles, los agregaré si se necesitan otros sentimientos.
Básicamente, estoy tratando de cerrar mi base de datos en estos dos modas en mi base de datos en memoria se llama constantemente "eh":
DriverManager.getConnection("jdbc:derby:memory:eh;shutdown=true");
a continuación:
DriverManager.getConnection("jdbc:derby:eh;shutdown=true");
El primero resultados en an exception but not the one expected. Los detalles son:
java.sql.SQLNonTransientConnectionException: Base de datos 'memoria: eh' apagado.
Los últimos resultados en
java.sql.SQLException: Base de datos 'eh' no encontrados.
Según lo que he podido averiguar, queremos un SQLException
pero no el que recibimos. Por otro lado, el error SQLNonTransientConnectionException
parece más apropiado, pero no es el tipo correcto (aunque se deriva de SQLException
) ni tiene el código de estado correcto. El código de estado termina siendo: 08006
.
El código de ejemplo que tengo ilustra que un SQLException
con un estado SQL de "XJ015".
Nota: El ejemplo al que me refiero es: WwdEmbedded Program (Java Code).
Parece que usar drop en lugar de shutdown es lo que quieres. el cierre parece no soltar la base de datos. – BrunoJCM