我需要從我的Java應用程序初始化數據庫。出於代碼可維護性的原因,我想將Java代碼與Java代碼分開維護(它目前在單獨的源文件中)。是HSQLDB over JDBC:批量執行SQL語句
文件的前幾行如下:
-- 1 - Countries - COUNTRIES.DAT;
drop table Countries if exists;
create table Countries(
CID integer,
ECC varchar(2),
CCD varchar(1),
NAME varchar(50));
我從文件中讀取的SQL代碼,並將其存儲在一個字符串。然後我做:
PreparedStatement stmt = dbConnection.prepareStatement(sqlString);
這失敗,出現以下異常:
java.sql.SQLSyntaxErrorException: unexpected token: CREATE : line: 2
這看起來好像JDBC不喜歡在一個PreparedStatement
多個SQL語句。我也試過CallableStatement
和prepareCall()
,結果相同。
JDBC是否提供了一種可以一次性傳遞整個SQL腳本的方法?
這對大多數數據庫不起作用,因爲JDBC期望每次執行一條語句(並且大多數驅動程序遵循該規則,並且具有違反規範的顯式配置選項)。 –