0

我们需要使用第三方库来执行 SQL 语句,在开始实施之前,我们希望确保该库可以做我们想做的任何事情。我们目前正在评估 Apache DBUtils。

我们尝试执行如下查询

INSERT INTO MyTable(ColA, ColB, ColC) VALUES (?, ?, ?),
                                             (?, ?, ?),
                                             (?, ?, ?);

使用 insertBatch,但看起来它失败了,因为它想要运行类似的东西:

INSERT INTO MyTable(ColA, ColB, ColC) VALUES (?, ?, ?);
INSERT INTO MyTable(ColA, ColB, ColC) VALUES (?, ?, ?);
INSERT INTO MyTable(ColA, ColB, ColC) VALUES (?, ?, ?);

从性能的角度来看,这更糟。

我们做错了什么吗?有没有什么方法可以使用 Apache DBUtils 实现之前的 SQL 语句?

4

1 回答 1

6

我想你应该做这样的事情:

queryRunner.batch("INSERT INTO MyTable(ColA, ColB, ColC) VALUES (?, ?, ?)",
        new Object[][] {
            {"A1", "B1", "C1"},
            {"A2", "B2", "C2"},
            {"A3", "B3", "C3"}});
于 2018-01-16T11:33:23.607 回答