¿Cómo ejecutar scripts sql para actualizar un esquema Derby desde código java?

Las instalaciones de la base de datos derby de nuestros clientes tienen diferentes versiones de esquema. Por ejemplo, Cliente1 tiene la versión de esquema db 4.1.5.0240, Cliente2 tiene la versión 4.0.1.0330.

La idea es actualizar estos esquemas a la versión real cuando se instala un nuevo software. Existen varios scripts sql para actualizar una versión al siguiente nivel. Por ejemplo, update_4.1.5.0240_to_4.3.1.0020.sql.

La herramienta / procedimiento que estoy buscando debería leer la versión instalada real de una tabla de base de datos derby. De acuerdo con esa versión, se ejecutará el script sql apropiado para actualizar el esquema al siguiente nivel. Este procedimiento debe repetirse hasta que no se encuentre una secuencia de comandos sql coincidente para la versión de lectura real.

La instalación en el sitio del cliente debe hacerse sin cabeza sin la ayuda de ningún administrador.

1.) Preferiría un programa java que lea la versión usando JDBC. Pero, ¿cómo ejecutar los scripts SQL desde Java? ¿Debo llamar a la herramienta de línea de comandos ij desde java?

2.) ¿Hay mejores alternativas?

Gracias viktor

Respuesta 1

Puede encontrar útil el método ij.runScript: http://db.apache.org/derby/javadoc/publishedapi/jdbc4/org/apache/derby/tools/ij.html

Una cosa a tener en cuenta es que no es fácil automatizar el manejo de errores dentro del script, ya que no hay construcciones de flujo de control (if / then / else) en el script ij. Pero si solo necesita realizar una serie de operaciones DDL de manera limpia, ij.runScript es una técnica bastante buena.

Respuesta: 2

Entonces, en mi juego de Android que estoy haciendo con andengine, lo tengo configurado para que cuando toque y arrastre el sprite del jugador, gire continuamente para que el personaje siempre esté orientado en la dirección en la que viaja. ...

Estoy usando Java Taillistener para monitorear mis archivos de registro. Cuando se actualizan los archivos de registro, imprimirá el mensaje de registro. Cuando maneje uno o dos archivos de registro, funcionará bien. Pero cuando intente monitorear más ...

Quiero agregar las diagonales en una matriz cuadrada o rectangular para emular el proceso de agregar los resultados parciales en un algoritmo de multiplicación. Así: 2412 x 3231 --------- 2412 ...

Estoy diseñando una aplicación web donde quiero usar el máximo de etiquetas de struts en la página JSP en lugar de código java. En mi caso, una de las acciones es tomar datos de un JSP >> obtener datos de db según ...