我正在尝试编写一些代码,以读取一个SQL文件(用CREATE TABLE分隔的多个语句;)并执行所有语句。
CREATE TABLE
;
在纯JDBC中,我可以这样写:
String sqlQuery = "CREATE TABLE A (...); CREATE TABLE B (...);" java.sql.Connection connection = ...; Statement statement = connection.createStatement(); statement.executeUpdate(sqlQuery); statement.close();
并且这两个(所有)语句都已执行。当我尝试在Spring JdbcTemplate中执行相同的操作时,虽然仅执行第一条语句!
String sqlQuery = "CREATE TABLE A (...); CREATE TABLE B (...);" org.springframework.jdbc.core.JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); jdbcTemplate.execute(sqlQuery);
有没有一种方法可以执行多个语句?在进行谷歌搜索时,我发现只有“ ;手动拆分sqlQuery”之类的解决方案当然是没有用的(它需要更多的解析)。
也许Spring的ScriptUtils在您的情况下会很有用。特别是executeSqlScript方法。
executeSqlScript
请注意,DEFAULT_STATEMENT_SEPARATOR其默认值为';'(请参见常量字段值)
DEFAULT_STATEMENT_SEPARATOR
';'