从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