我想使用Java一次性向MySQL表中插入多行数据。行数是动态的。过去,我是这样做的...
for (String element : array) {
myStatement.setString(1, element[0]);
myStatement.setString(2, element[1]);
myStatement.executeUpdate();
}
我想要优化这个查询,使用MySQL支持的语法:
INSERT INTO table (col1, col2) VALUES ('val1', 'val2'), ('val1', 'val2')[, ...]
使用 PreparedStatement
时,由于我事先不知道 array
包含多少个元素,所以我不知道如何做到这一点。如果使用 PreparedStatement
不可能实现,那么我该如何做(并仍然转义数组中的值)?
connection.setAutoCommit(false);
和connection.commit();
实现。参考链接:http://download.oracle.com/javase/tutorial/jdbc/basics/transactions.html。 - Joshua Martelli == entities.size()
。 - Yohanimconnection.getMetaData().supportsBatchUpdates();
可能会很有用。 - Ben