2010-11-08 4 views
5

Abbiamo tutti i nostri test unitari scritti in modo da creare e popolare tabelle in HSQL. Voglio che gli sviluppatori che lo usano siano in grado di scrivere query su questo HSQL DB (1) scrivendo query che possano capire meglio il modello di dati e quelle che non hanno familiarità con SQL possono giocare con i dati prima di scrivere le istruzioni runtime e 2) poiché non hanno accesso al DB di test/motivi di sicurezza). C'è un modo per persistere i risultati dei dati di test in modo che possa essere esaminato e analizzato con un client sql?Esiste un modo per mantenere i dati HSQLDB?

In questo momento sono io a giurare il rigging passando la sorgente dati in un DB diverso (come DB2/mysql, quindi connettendomi a quel DB sulla mia macchina in modo da poter giocare con dati persistenti), tuttavia sarebbe più facile per me se HSQL supporta la persistenza di questo piuttosto che spiegare come farlo a ogni nuovo sviluppatore.

Giusto per essere chiari, ho bisogno di un client SQL per interagire con i dati persistenti, quindi il debug e il controllo della memoria non saranno puliti. Questo ha più a che fare con lo sviluppo iniziale e non con il debugging/manutenzione/test.

risposta

5

Se si utilizza un'istanza del server HSQLDB per i test, i dati sopravviveranno all'esecuzione del test.

Se il server utilizza un URL jdbc: hsqldb: mem: aname (all-in-memory) per il proprio database, i dati saranno disponibili mentre il server è in esecuzione. In alternativa, il server può utilizzare un URL jdbc: hsqldb: file: filepath e i dati vengono mantenuti nei file.

Gli ultimi documenti HSQLDB illustrano le diverse opzioni. La maggior parte delle osservazioni si applica anche alle versioni precedenti (1.8.x). Tuttavia, l'ultima versione 2.0.1 supporta l'avvio di un server e la creazione di database dinamicamente alla prima connessione, che può semplificare molto il test.

http://hsqldb.org/doc/2.0/guide/deployment-chapt.html#N13C3D

+0

può un client SQL connettersi a qualsiasi cosa che hsqldb persiste? – Zombies

+0

Quando si esegue HSQLDB come server, viene eseguito in modo simile a DB2. Si utilizza il server come origine dati e si può anche utilizzare un client SQL come il DatabaseManager HSQLDB o Squirrel per connettersi al server e giocare con i dati. – fredt