我正在尝试编写一些代码,以读取一个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
其默认值为';'
(请参见常量字段值)
我试图编写一些代码来读取一个SQL文件(多个语句由分隔)并执行所有语句。 有没有执行多个语句的方法?在Googleing中,我只找到了“通过手动拆分sqlQuery”这样的解决方案,这当然是无用的(这需要更多的解析)。
问题内容: 我正在使用新的ES6模板文字功能,想到的第一件事是JavaScript,因此我着手实现了一个原型: 但是,在将模板文字传递给我的原型方法之前,需要先对其进行评估。有什么方法可以编写上述代码以将结果推迟到动态创建元素之后? 问题答案: 我可以看到三种解决方法: 使用模板字符串,就像设计使用的那样,没有任何功能: // might make more sense with variable
问题内容: 一年多以前,有人问这个问题:在python中执行用于在SQL Management Studio中运行的.sql文件 。 我正在用python编写脚本,该脚本连接到SQL Server,并根据SQL命令在大(数GB)的.sql文件中创建和填充数据库。 看起来SQLCMD需要下载并安装SQL Server Express。还有其他方法可以从python执行.sql文件,而不需要每个使用我
我正在玩新的ES6模板文字功能,我首先想到的是一个<code>字符串。为JavaScript格式化,所以我开始实现一个原型: ES6Fiddle 但是,模板文字在传递给我的原型方法之前会被评估。有没有什么方法可以编写上面的代码来将结果推迟到我动态创建元素之后?
问题内容: 我们有一个Perl脚本,该脚本运行SQL并将数据放入表中。现在,我们不想传递一个SQL语句,而是希望传递一堆将它们放在一起的.sql文件中。我们知道我们的程序将失败,因为它期望一个SQL语句,而不是一堆SQL语句(也来自.sql文件)。我们如何使其与.sql文件(具有多个INSERT语句?)一起使用。我们正在使用DBI软件包。 一小段代码: 问题答案: 不确定您想要什么… 创建DBI对
问题内容: 我有一个sql脚本文件,我需要通过java执行其中的命令。我在互联网上搜索了相同的内容,得到了一些定义解析器的代码以拆分SQL语句并执行该代码。但是它们都不适合我的sql脚本文件。因为我的脚本文件同时包含create语句和alter语句,但不带分号[相反,它具有GO]有人可以建议一种执行脚本文件的解决方案吗?谢谢,Mahesh 问题答案: 对于简单的脚本,我通常使用ibatis- Sc