我需要从我的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期望每次执行一条语句(并且大多数驱动程序遵循该规则,并且具有违反规范的显式配置选项)。 –