我使用hsqldb來運行我需要數據庫訪問的單元測試。運行腳本以創建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
上下文中定義一個數據源:
<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文檔中看到我可以讓他去run a script at the startup。但是,它不符合我的要求,因爲我想在運行時運行腳本。
當然,我可以自己讀取文件,並且對於每個SQL語句,我運行一個ps.executeUpdate()
命令,但我不想使用這種解決方案(除非沒有其他解決方案)。
有什麼想法?
這是工作,謝謝!然而,我不明白爲什麼春天拒絕在幾行中有一個聲明(即使在最後有';')... – romaintaz 2010-02-19 12:41:10
你使用哪種executeSqlScript方法?實施有所不同 – 2010-02-19 14:39:44