【问题标题】:JdbcTemplate send parameters to multiple statements in one batchJdbcTemplate 批量向多条语句发送参数
【发布时间】:2017-09-29 15:55:30
【问题描述】:

我有如下声明:

String query = "DELETE FROM myTable WHERE id=? AND otherField=?; DELETE FROM myOtherTable WHERE idOther=? AND anotherField=?;";

将作为一个查询(一个接一个)执行。所以,我有如下内容:

JdbcTemplate template;
template.update(query, new Object[]{ 1, "otherValue", 3, "anotherValue" });

失败并出现以下错误:

org.postgresql.util.PSQLException:列索引超出范围: 3、列数:2。

我认为这里的问题是,查询由分号分隔,并且将为每个查询应用参数,并且无论分号如何,它都会尝试应用参数。所以,我有 4 个参数,但第一个查询只收到 2 个(虽然两个查询的总和是 4)。

有没有办法让我将参数传递给查询? 我不能使用命名模板

【问题讨论】:

  • 投反对票的人能解释一下为什么投反对票吗?
  • 为什么两个 DELETE 语句必须在同一个 Java 字符串中?
  • 你不能一次执行多个语句。

标签: java postgresql jdbc jdbctemplate


【解决方案1】:

我最终自己进行了替换,然后执行了查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多