从Spring JDBC模板执行SQL文件

我正在尝试编写一些代码,以读取一个SQL文件(用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方法。

请注意,DEFAULT_STATEMENT_SEPARATOR其默认值为';'(请参见常量字段值)

以上是 从Spring JDBC模板执行SQL文件 的全部内容, 来源链接: utcz.com/qa/428032.html

回到顶部