L'exécution d'un script pour créer des tables avec HSQLDB

- Je utiliser hsqldb mes tests unitaires qui ont besoin d'une base de données access.

Pour le moment, lorsque je veux créer une table pour un test, j'ai le code suivant:

private void createTable() {
    PreparedStatement ps;
    try {
        ps = getConnection().prepareStatement("CREATE TABLE T_DATE (ID NUMERIC PRIMARY KEY, DATEID TIMESTAMP)");
        ps.executeUpdate();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

La getConnection() méthode de récupérer une source de données définie dans un Spring contexte:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="org.hsqldb.jdbcDriver"/>
    <property name="url" value="jdbc:hsqldb:mem:memoryDB"/>
    <property name="username" value="SA"/>
    <property name="password" value=""/>
</bean>

Maintenant, je veux créer ma table à partir d'un script SQL (bien sûr, ce script va contenir plus d'une création de la table):

CREATE TABLE T_DATE_FOO (ID NUMERIC PRIMARY KEY, DATEID TIMESTAMP);
CREATE TABLE T_DATE_BAR (ID NUMERIC PRIMARY KEY, DATEID TIMESTAMP);
...

J'ai vu dans la HSQLDB la documentation que je peux lui demander de exécuter un script au démarrage. Cependant, il ne répond pas à mes exigences, je veux lancer un script au moment de l'exécution.

Bien sûr, je peux lire le fichier de moi-même, et pour chaque instruction SQL, je lance un ps.executeUpdate() commandement, mais je ne veux pas utiliser ce genre de solution (sauf si il n'y a pas d'autre solution).

Une idée?

OriginalL'auteur Romain Linsolas | 2010-02-19