运行脚本以使用HSQLDB创建表

我使用 运行需要数据库访问权限的单元测试。

目前,当我想为特定测试创建表时,我具有以下代码:

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();

}

}

getConnection()方法检索在Spring上下文中定义的DataSource :

<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>

现在,我想从一个SQL脚本创建表(当然,此脚本将包含多个表创建):

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

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

...

在HSQLDB文档中,我可以要求他在启动时运行脚本。但是,它不符合我的要求,因为我想在运行时运行脚本。

当然,我可以自己读取文件,并且对于每个SQL语句,我都运行一个ps.executeUpdate()命令,但是我不想使用这种解决方案(除非没有其他解决方案)。

任何想法?

回答:

因为您已经在使用spring,所以您可能想使用SimpleJdbcUtils.executeSQLScript方法,该方法执行一个SQL脚本,其中语句之间用分号分隔。此类在弹簧测试模块(JAR)中。

以上是 运行脚本以使用HSQLDB创建表 的全部内容, 来源链接: utcz.com/qa/399367.html

回到顶部