批量插入和Apache DBUtils

时间:2018-01-16 11:18:12

标签: java sql batch-insert apache-commons-dbutils

我们需要使用第三方lib来执行SQL语句,在开始实现之前,我们希望确保lib可以做任何我们想做的事情。我们目前正在评估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语句?

1 个答案:

答案 0 :(得分:3)

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

queryRunner.batch("INSERT INTO MyTable(ColA, ColB, ColC) VALUES (?, ?, ?)",
        new Object[][] {
            {"A1", "B1", "C1"},
            {"A2", "B2", "C2"},
            {"A3", "B3", "C3"}});